r2corba 1.4.1-universal-java-1.7

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 (266) hide show
  1. data/CHANGES +159 -0
  2. data/LICENSE +59 -0
  3. data/LICENSE.jacorb +660 -0
  4. data/README +62 -0
  5. data/THANKS +52 -0
  6. data/bin/r2corba +8 -0
  7. data/bin/r2corba.bat +20 -0
  8. data/bin/ridlc +11 -0
  9. data/bin/ridlc.bat +23 -0
  10. data/bin/rins +7 -0
  11. data/bin/rins.bat +19 -0
  12. data/jacorb/lib/antlr-2.7.2.jar +0 -0
  13. data/jacorb/lib/jacorb-services.jar +0 -0
  14. data/jacorb/lib/jacorb.jar +0 -0
  15. data/jacorb/lib/slf4j-api-1.6.4.jar +0 -0
  16. data/jacorb/lib/slf4j-jdk14-1.6.4.jar +0 -0
  17. data/lib/corba/cbase/IORMap.rb +33 -0
  18. data/lib/corba/cbase/ORB.rb +231 -0
  19. data/lib/corba/cbase/Request.rb +134 -0
  20. data/lib/corba/cbase/Streams.rb +129 -0
  21. data/lib/corba/cbase/Stub.rb +19 -0
  22. data/lib/corba/cbase/Typecode.rb +441 -0
  23. data/lib/corba/cbase/Values.rb +129 -0
  24. data/lib/corba/cbase/exception.rb +66 -0
  25. data/lib/corba/cbase/poa.rb +23 -0
  26. data/lib/corba/cbase/policies.rb +78 -0
  27. data/lib/corba/cbase/post_require.rb +14 -0
  28. data/lib/corba/cbase/require.rb +28 -0
  29. data/lib/corba/cmds/base.rb +85 -0
  30. data/lib/corba/cmds/test.rb +30 -0
  31. data/lib/corba/common/Any.rb +91 -0
  32. data/lib/corba/common/IDL.rb +104 -0
  33. data/lib/corba/common/ORB.rb +368 -0
  34. data/lib/corba/common/Object.rb +208 -0
  35. data/lib/corba/common/Request.rb +20 -0
  36. data/lib/corba/common/Servant.rb +108 -0
  37. data/lib/corba/common/Struct.rb +22 -0
  38. data/lib/corba/common/Stub.rb +79 -0
  39. data/lib/corba/common/Typecode.rb +1121 -0
  40. data/lib/corba/common/Union.rb +56 -0
  41. data/lib/corba/common/Values.rb +92 -0
  42. data/lib/corba/common/const.rb +22 -0
  43. data/lib/corba/common/exception.rb +68 -0
  44. data/lib/corba/common/require.rb +27 -0
  45. data/lib/corba/common/version.rb +22 -0
  46. data/lib/corba/idl/BiDirPolicyC.rb +63 -0
  47. data/lib/corba/idl/CosNamingC.rb +461 -0
  48. data/lib/corba/idl/CosNamingS.rb +309 -0
  49. data/lib/corba/idl/IDL.rb +21 -0
  50. data/lib/corba/idl/IORTable.pidl +62 -0
  51. data/lib/corba/idl/MessagingC.rb +904 -0
  52. data/lib/corba/idl/POAC.rb +930 -0
  53. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  54. data/lib/corba/idl/r2c_orb.rb +572 -0
  55. data/lib/corba/idl/require.rb +20 -0
  56. data/lib/corba/jbase/Any.rb +273 -0
  57. data/lib/corba/jbase/IORMap.rb +36 -0
  58. data/lib/corba/jbase/ORB.rb +99 -0
  59. data/lib/corba/jbase/Object.rb +98 -0
  60. data/lib/corba/jbase/Request.rb +226 -0
  61. data/lib/corba/jbase/Servant.rb +247 -0
  62. data/lib/corba/jbase/ServerRequest.rb +128 -0
  63. data/lib/corba/jbase/Streams.rb +671 -0
  64. data/lib/corba/jbase/Stub.rb +38 -0
  65. data/lib/corba/jbase/Typecode.rb +520 -0
  66. data/lib/corba/jbase/Values.rb +173 -0
  67. data/lib/corba/jbase/exception.rb +106 -0
  68. data/lib/corba/jbase/poa.rb +229 -0
  69. data/lib/corba/jbase/policies.rb +300 -0
  70. data/lib/corba/jbase/post_require.rb +14 -0
  71. data/lib/corba/jbase/require.rb +86 -0
  72. data/lib/corba/naming.rb +14 -0
  73. data/lib/corba/naming_service.rb +15 -0
  74. data/lib/corba/poa.rb +15 -0
  75. data/lib/corba/policies.rb +18 -0
  76. data/lib/corba/require.rb +17 -0
  77. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  78. data/lib/corba/svcs/ins/ins.rb +526 -0
  79. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  80. data/lib/corba.rb +16 -0
  81. data/lib/ridlbe/ruby/config.rb +336 -0
  82. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  83. data/lib/ridlbe/ruby/require.rb +16 -0
  84. data/lib/ridlbe/ruby/walker.rb +1582 -0
  85. data/mkrf_conf_bingem.rb +101 -0
  86. data/rakelib/bin.rake +80 -0
  87. data/rakelib/bin.rb +146 -0
  88. data/rakelib/build.rake +87 -0
  89. data/rakelib/config.rake +52 -0
  90. data/rakelib/config.rb +450 -0
  91. data/rakelib/gem.rake +212 -0
  92. data/rakelib/gem.rb +146 -0
  93. data/rakelib/package.rake +26 -0
  94. data/rakelib/test.rake +23 -0
  95. data/test/BiDirectional/Test.idl +34 -0
  96. data/test/BiDirectional/client.rb +132 -0
  97. data/test/BiDirectional/run_test.rb +68 -0
  98. data/test/BiDirectional/server.ior +1 -0
  99. data/test/BiDirectional/server.rb +169 -0
  100. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  104. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  105. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  106. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  107. data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
  108. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
  109. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  110. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  111. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  112. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  113. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
  114. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  115. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  116. data/test/Collocation/Diamond.idl +39 -0
  117. data/test/Collocation/run_test.rb +52 -0
  118. data/test/Collocation/test.rb +195 -0
  119. data/test/Connect_Timeout/Test.idl +27 -0
  120. data/test/Connect_Timeout/client.rb +111 -0
  121. data/test/Connect_Timeout/run_test.rb +52 -0
  122. data/test/DII/Test.idl +27 -0
  123. data/test/DII/client.rb +115 -0
  124. data/test/DII/run_test.rb +69 -0
  125. data/test/DII/server.ior +1 -0
  126. data/test/DII/server.rb +95 -0
  127. data/test/DSI/Test.idl +27 -0
  128. data/test/DSI/client.rb +66 -0
  129. data/test/DSI/run_test.rb +69 -0
  130. data/test/DSI/server.ior +1 -0
  131. data/test/DSI/server.rb +106 -0
  132. data/test/Exceptions/Test.idl +48 -0
  133. data/test/Exceptions/client.rb +118 -0
  134. data/test/Exceptions/run_test.rb +69 -0
  135. data/test/Exceptions/server.ior +1 -0
  136. data/test/Exceptions/server.rb +131 -0
  137. data/test/Hello/Test.idl +27 -0
  138. data/test/Hello/client.rb +78 -0
  139. data/test/Hello/run_test.rb +71 -0
  140. data/test/Hello/server.rb +95 -0
  141. data/test/IDL_Test/Test.idl +113 -0
  142. data/test/IDL_Test/Test_inc.idl +17 -0
  143. data/test/IDL_Test/client.rb +102 -0
  144. data/test/IDL_Test/run_test.rb +69 -0
  145. data/test/IDL_Test/server.ior +1 -0
  146. data/test/IDL_Test/server.rb +99 -0
  147. data/test/IORMap/Test.idl +27 -0
  148. data/test/IORMap/client.rb +73 -0
  149. data/test/IORMap/run_test.rb +69 -0
  150. data/test/IORMap/server.ior +1 -0
  151. data/test/IORMap/server.rb +114 -0
  152. data/test/IORTable/Test.idl +27 -0
  153. data/test/IORTable/client.rb +75 -0
  154. data/test/IORTable/run_test.rb +69 -0
  155. data/test/IORTable/server.ior +0 -0
  156. data/test/IORTable/server.rb +130 -0
  157. data/test/Implicit_Conversion/Test.idl +31 -0
  158. data/test/Implicit_Conversion/client.rb +110 -0
  159. data/test/Implicit_Conversion/run_test.rb +69 -0
  160. data/test/Implicit_Conversion/server.ior +1 -0
  161. data/test/Implicit_Conversion/server.rb +99 -0
  162. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  163. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  164. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  165. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  166. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
  167. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
  168. data/test/Multi_Threading/Simple/Test.idl +27 -0
  169. data/test/Multi_Threading/Simple/client.rb +88 -0
  170. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  171. data/test/Multi_Threading/Simple/server.ior +1 -0
  172. data/test/Multi_Threading/Simple/server.rb +118 -0
  173. data/test/Multi_Threading/Threads/Test.idl +31 -0
  174. data/test/Multi_Threading/Threads/client.rb +80 -0
  175. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  176. data/test/Multi_Threading/Threads/server.ior +1 -0
  177. data/test/Multi_Threading/Threads/server.rb +119 -0
  178. data/test/Multi_Threading/Threads/watchdog.ior +1 -0
  179. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  180. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  181. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  182. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  183. data/test/Multiple_Servant_Interfaces/server.ior +1 -0
  184. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  185. data/test/Nil/Test.idl +27 -0
  186. data/test/Nil/run_test.rb +52 -0
  187. data/test/Nil/test.rb +78 -0
  188. data/test/OBV/AbstractInterface/client.rb +179 -0
  189. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  190. data/test/OBV/AbstractInterface/server.ior +1 -0
  191. data/test/OBV/AbstractInterface/server.rb +149 -0
  192. data/test/OBV/AbstractInterface/test.idl +53 -0
  193. data/test/OBV/Custom/OBV.idl +18 -0
  194. data/test/OBV/Custom/OBV_impl.rb +40 -0
  195. data/test/OBV/Custom/client.rb +86 -0
  196. data/test/OBV/Custom/run_test.rb +69 -0
  197. data/test/OBV/Custom/server.ior +1 -0
  198. data/test/OBV/Custom/server.rb +100 -0
  199. data/test/OBV/Simple/OBV.idl +15 -0
  200. data/test/OBV/Simple/OBV_impl.rb +26 -0
  201. data/test/OBV/Simple/client.rb +86 -0
  202. data/test/OBV/Simple/run_test.rb +69 -0
  203. data/test/OBV/Simple/server.ior +1 -0
  204. data/test/OBV/Simple/server.rb +100 -0
  205. data/test/OBV/Simple_Event/Event.idl +15 -0
  206. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  207. data/test/OBV/Simple_Event/client.rb +86 -0
  208. data/test/OBV/Simple_Event/run_test.rb +69 -0
  209. data/test/OBV/Simple_Event/server.ior +1 -0
  210. data/test/OBV/Simple_Event/server.rb +100 -0
  211. data/test/OBV/Supports/client.rb +116 -0
  212. data/test/OBV/Supports/run_test.rb +69 -0
  213. data/test/OBV/Supports/server.ior +1 -0
  214. data/test/OBV/Supports/server.rb +103 -0
  215. data/test/OBV/Supports/supports.idl +33 -0
  216. data/test/OBV/Supports/supports_impl.rb +57 -0
  217. data/test/OBV/Tree/client.rb +116 -0
  218. data/test/OBV/Tree/run_test.rb +69 -0
  219. data/test/OBV/Tree/server.ior +1 -0
  220. data/test/OBV/Tree/server.rb +117 -0
  221. data/test/OBV/Tree/test.idl +32 -0
  222. data/test/OBV/Truncatable/Extra.idl +27 -0
  223. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  224. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  225. data/test/OBV/Truncatable/client.rb +279 -0
  226. data/test/OBV/Truncatable/run_test.rb +69 -0
  227. data/test/OBV/Truncatable/server.ior +1 -0
  228. data/test/OBV/Truncatable/server.rb +89 -0
  229. data/test/OBV/ValueBox/client.rb +497 -0
  230. data/test/OBV/ValueBox/run_test.rb +69 -0
  231. data/test/OBV/ValueBox/server.ior +1 -0
  232. data/test/OBV/ValueBox/server.rb +271 -0
  233. data/test/OBV/ValueBox/valuebox.idl +101 -0
  234. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  235. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  236. data/test/OBV/ValueBox/vb_union.idl +21 -0
  237. data/test/Object/Test.idl +27 -0
  238. data/test/Object/client.rb +103 -0
  239. data/test/Object/run_test.rb +69 -0
  240. data/test/Object/server.ior +1 -0
  241. data/test/Object/server.rb +126 -0
  242. data/test/POA/Test.idl +27 -0
  243. data/test/POA/run_test.rb +52 -0
  244. data/test/POA/test.rb +112 -0
  245. data/test/Param_Test/Test.idl +182 -0
  246. data/test/Param_Test/client.rb +277 -0
  247. data/test/Param_Test/run_test.rb +69 -0
  248. data/test/Param_Test/server.ior +1 -0
  249. data/test/Param_Test/server.rb +296 -0
  250. data/test/Performance/Simple/Test.idl +27 -0
  251. data/test/Performance/Simple/client.rb +90 -0
  252. data/test/Performance/Simple/run_test.rb +69 -0
  253. data/test/Performance/Simple/server.ior +1 -0
  254. data/test/Performance/Simple/server.rb +95 -0
  255. data/test/Policies/Test.idl +27 -0
  256. data/test/Policies/run_test.rb +52 -0
  257. data/test/Policies/test.rb +144 -0
  258. data/test/Timeout/client.rb +207 -0
  259. data/test/Timeout/run_test.rb +69 -0
  260. data/test/Timeout/server.ior +1 -0
  261. data/test/Timeout/server.rb +109 -0
  262. data/test/Timeout/test.idl +19 -0
  263. data/test/lib/assert.rb +43 -0
  264. data/test/lib/test.rb +542 -0
  265. data/test/test_runner.rb +193 -0
  266. metadata +352 -0
data/README ADDED
@@ -0,0 +1,62 @@
1
+
2
+ * What is Ruby2CORBA
3
+
4
+ Ruby2CORBA (R2CORBA) is a CORBA mapping implementation for the Ruby
5
+ programming language (see http://www.ruby-lang.org).
6
+ Instead of going for a complete native Ruby mapping implementing a native
7
+ Ruby ORB, R2CORBA aims at providing CORBA functionality through a Ruby
8
+ extension using the DII and DSI interfaces of an existing CORBA ORB
9
+ implementation.
10
+ There are currently two flavors of this extension available:
11
+ o an MRI Ruby extension written in Ruby and C/C++ using TAO
12
+ (The ACE ORB; see http://www.cs.wustl.edu/~schmidt/TAO.html).
13
+ o a JRuby extension written in Ruby and Java using JacORB
14
+ (http://www.jacorb.org/index.html).
15
+ A native Ruby implementation of an OMG IDL compiler supplements this
16
+ extension and provides powerful features like direct inclusion of IDL
17
+ language modules into your Ruby programs without the need of explicit,
18
+ separate stub generation.
19
+
20
+ Both flavors of R2CORBA fully implement the official OMG Ruby CORBA
21
+ Language Mapping (RCLM) specification which can be downloaded here:
22
+ http://www.omg.org/spec/RCLM.
23
+
24
+ * How to get R2CORBA
25
+
26
+ Execute
27
+
28
+ gem install r2corba
29
+
30
+ to install R2CORBA as a gem.
31
+
32
+ or
33
+
34
+ Go to https://osportal.remedy.nl/projects/r2corba/files to
35
+ download the latest source package and build your own.
36
+
37
+ or
38
+
39
+ Go to https://osportal.remedy.nl/projects/r2corba/wiki and read how
40
+ to checkout the latest source code from the version repository.
41
+
42
+ * How to compile and install
43
+
44
+ See the file INSTALL
45
+
46
+ * Copying/License
47
+
48
+ See the file LICENSE
49
+
50
+ * Acknowledgments
51
+
52
+ See the file THANKS
53
+
54
+ * The author(s)
55
+
56
+ R2CORBA has been created by staff of Remedy IT.
57
+ (http://www.remedy.nl | http://www.theaceorb.nl)
58
+
59
+ Feel free to send comments and bug reports to:
60
+
61
+ r2corba@remedy.nl
62
+
data/THANKS ADDED
@@ -0,0 +1,52 @@
1
+
2
+ Our thanks go to:
3
+
4
+ * Yukihiro Matsumoto, aka “Matz”, for creating the wonderfully
5
+ powerful and elegant programming language named Ruby.
6
+ With him we also thank all those who have contributed to the
7
+ Ruby programming tool and have made Ruby what it is today.
8
+
9
+ * Charles Oliver Nutter, aka "headius", and the other people of
10
+ the JRuby core development team for bringing that wonderful
11
+ programming language that Matz created to Java.
12
+
13
+ * Prof. Douglas Schmidt for (and all his collaborators) for creating
14
+ a high-quality OpenSource CORBA compliant ORB. The high level of
15
+ OS abstraction and multiplatform compatibility of this software
16
+ make it an ideal ingredient for a Ruby CORBA implementation.
17
+
18
+ * The people of the JacORB development team (a.o. Gerald Brose and
19
+ Andre Spiegel) and all their collaborators for creating a high-
20
+ performance, multi threaded and spec compliant ORB for the
21
+ Java environment.
22
+
23
+ * Minero Aoki for creating the original 'setup.rb' install script.
24
+
25
+ * Daisuke Kanda for his initial work on CORBA bindings for Ruby from
26
+ 2001 (incl. RINN and Ruby-Orbit) which has helped us in many ways
27
+ to create R2CORBA.
28
+
29
+ * Paul Brannan of Automated Trading Desk, LLC for his insightfull
30
+ comments on the first release of the Ruby CORBA language mapping.
31
+
32
+ * Renato Lucindo and Eider Oliveira for their remarks and fixes for
33
+ the IDL compiler.
34
+
35
+ * Ragnar Dahlen for his tests and comments.
36
+
37
+ * William Otte for his patches for the Mac OSX port.
38
+
39
+ * David MacMahon for his comments and tests, especially with regard to
40
+ omniORBpy interoperability.
41
+
42
+ * David MacMahon for his Multi_Threading/Threads test.
43
+
44
+ * Joel Hahn for reporting the union implicit default bug and
45
+ providing partial patches.
46
+
47
+ * Karsten Richter for reporting a bug in union implicit default
48
+ handling and providing a partial patch and regression test.
49
+
50
+ * Grant Birchmeier for reporting the RIDL logger bug (triggered
51
+ by an unknown pragma)
52
+
data/bin/r2corba ADDED
@@ -0,0 +1,8 @@
1
+ #!/bin/env jruby
2
+ #---------------------------------
3
+ # This file is generated
4
+ #---------------------------------
5
+ unless defined? Gem
6
+ require 'rubygems' rescue nil
7
+ end
8
+ require 'corba/cmds/base'
data/bin/r2corba.bat ADDED
@@ -0,0 +1,20 @@
1
+ @echo off
2
+ if not "%~f0" == "~f0" goto WinNT
3
+ jruby -Sx "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
4
+ goto endofruby
5
+ :WinNT
6
+ if not exist "%~d0%~p0jruby" goto rubyfrompath
7
+ if exist "%~d0%~p0jruby" "%~d0%~p0jruby" -x "%~f0" %*
8
+ goto endofruby
9
+ :rubyfrompath
10
+ jruby -x "%~f0" %*
11
+ goto endofruby
12
+ #!/bin/jruby
13
+ #
14
+ unless defined? Gem
15
+ require 'rubygems' rescue nil
16
+ end
17
+ require 'corba/cmds/base'
18
+
19
+ __END__
20
+ :endofruby
data/bin/ridlc ADDED
@@ -0,0 +1,11 @@
1
+ #!/bin/env jruby
2
+ #---------------------------------
3
+ # This file is generated
4
+ #---------------------------------
5
+ ENV['RIDL_BE_SELECT'] = 'ruby'
6
+ unless defined? Gem
7
+ require 'rubygems' rescue nil
8
+ end
9
+ require 'ridl/ridl'
10
+
11
+ IDL.run
data/bin/ridlc.bat ADDED
@@ -0,0 +1,23 @@
1
+ @echo off
2
+ if not "%~f0" == "~f0" goto WinNT
3
+ jruby -Sx "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
4
+ goto endofruby
5
+ :WinNT
6
+ if not exist "%~d0%~p0jruby" goto rubyfrompath
7
+ if exist "%~d0%~p0jruby" "%~d0%~p0jruby" -x "%~f0" %*
8
+ goto endofruby
9
+ :rubyfrompath
10
+ jruby -x "%~f0" %*
11
+ goto endofruby
12
+ #!/bin/jruby
13
+ #
14
+ ENV['RIDL_BE_SELECT'] = 'ruby'
15
+ unless defined? Gem
16
+ require 'rubygems' rescue nil
17
+ end
18
+ require 'ridl/ridl'
19
+
20
+ IDL.run
21
+
22
+ __END__
23
+ :endofruby
data/bin/rins ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/env jruby
2
+ #---------------------------------
3
+ # This file is generated
4
+ #---------------------------------
5
+ require 'corba/svcs/ins/ins'
6
+
7
+ INS.run
data/bin/rins.bat ADDED
@@ -0,0 +1,19 @@
1
+ @echo off
2
+ if not "%~f0" == "~f0" goto WinNT
3
+ jruby -Sx "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
4
+ goto endofruby
5
+ :WinNT
6
+ if not exist "%~d0%~p0jruby" goto rubyfrompath
7
+ if exist "%~d0%~p0jruby" "%~d0%~p0jruby" -x "%~f0" %*
8
+ goto endofruby
9
+ :rubyfrompath
10
+ jruby -x "%~f0" %*
11
+ goto endofruby
12
+ #!/bin/jruby
13
+ #
14
+ require 'corba/svcs/ins/ins'
15
+
16
+ INS.run
17
+
18
+ __END__
19
+ :endofruby
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,33 @@
1
+ #--------------------------------------------------------------------
2
+ # iormap.rb - C++/TAO IORMap 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
+ require 'corba/idl/IORTableC'
14
+
15
+ module R2CORBA
16
+ class IORMap
17
+ def initialize(orb)
18
+ obj = orb.resolve_initial_references('IORTable')
19
+ @iortbl = IORTable::Table._narrow(obj)
20
+ end
21
+
22
+ def map_ior(object_key, ior)
23
+ @iortbl.rebind(object_key, ior)
24
+ end
25
+
26
+ def unmap_ior(object_key)
27
+ begin
28
+ @iortbl.unbind(object_key)
29
+ rescue IORTable::NotFound
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,231 @@
1
+ #--------------------------------------------------------------------
2
+ # ORB.rb - C++/TAO CORBA ORB 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
+ require 'monitor'
14
+
15
+ module R2CORBA
16
+ module CORBA
17
+
18
+ module ORB
19
+
20
+ @@_default_args = []
21
+ unless R2CORBA::TAO::RUBY_THREAD_SUPPORT
22
+ # to prevent problems with "green threads" model of Ruby <=1.8.x run TAO
23
+ # without nested upcalls; preventing thread reuse and re-entrancy
24
+ @@_default_args << '-ORBSvcConfDirective'
25
+ @@_default_args << 'static Client_Strategy_Factory "-ORBClientConnectionHandler MT_NOUPCALL"'
26
+ end
27
+
28
+ ## init() or init(arg1, arg2, arg3[, ...]) or init(orb_id, prop = {}) or init(argv, orb_id, prop={}) or init(argv, prop={})
29
+ def self.init(*args)
30
+ n_orb = if args.empty? && @@_default_args.empty?
31
+ @@cached_orb = CORBA::Native::ORB.init
32
+ else
33
+ argv = []
34
+ orb_id = nil
35
+ prop = nil
36
+ a1, a2, a3 = args
37
+ if Array === a1
38
+ raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size>3
39
+ argv = a1
40
+ orb_id = (Hash === a2 ? nil : a2)
41
+ prop = (Hash === a2 ? a2 : a3)
42
+ elsif args.size == 1 || Hash === a2
43
+ raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size>2
44
+ orb_id = a1
45
+ prop = a2
46
+ else
47
+ argv = args
48
+ end
49
+ raise ArgumentError, "Invalid argument #{prop.class}; expected Hash" unless prop.nil? || Hash === prop
50
+ unless prop.nil?()
51
+ prop.inject(argv) {|a,(k,v)| a << k; a << v; a}
52
+ end
53
+ @@cached_orb = CORBA::Native::ORB.init(argv.collect {|a| a.to_s }.concat(@@_default_args), orb_id.nil?() ? nil : orb_id.to_s)
54
+ end
55
+ unless n_orb.nil?() || @@vf_queue.empty?()
56
+ @@vf_queue.process_all { |vfklass| vfklass._check_factory }
57
+ end
58
+ @@wrapper_klass.new(n_orb)
59
+ end
60
+
61
+ =begin
62
+ // Thread related operations
63
+ =end
64
+
65
+ # ret [boolean, <time left>] if !timeout.nil? else boolean
66
+ def work_pending(timeout = nil)
67
+ begin
68
+ self.orb_.work_pending(timeout)
69
+ rescue ::NativeException
70
+ CORBA::Exception.native2r($!)
71
+ end
72
+ end
73
+
74
+ # ret <time left> if !timeout.nil? else void
75
+ def perform_work(timeout = nil)
76
+ begin
77
+ self.orb_.perform_work(timeout)
78
+ rescue ::NativeException
79
+ CORBA::Exception.native2r($!)
80
+ end
81
+ end
82
+
83
+ # safe to run in thread; even in pre-1.9 MRI Ruby
84
+ # ret <time left> if !timeout.nil? else void
85
+ def run(timeout = nil)
86
+ if R2CORBA::TAO::RUBY_THREAD_SUPPORT
87
+ begin
88
+ self.orb_.run(timeout)
89
+ rescue ::NativeException
90
+ CORBA::Exception.native2r($!)
91
+ end
92
+ else
93
+ @running ||= true
94
+ raise CORBA::BAD_INV_ORDER.new('ORB has been shutdown', 0, CORBA::COMPLETED_NO) if @shutdown
95
+ while (timeout.nil? or timeout>0) and !@shutdown
96
+ to = timeout || 0.05
97
+ f, to = self.work_pending(to)
98
+ timeout = to unless timeout.nil?
99
+ if f and !@shutdown and (timeout.nil? or timeout>0)
100
+ to = timeout || 0.05
101
+ to = self.perform_work(to)
102
+ timeout = to unless timeout.nil?
103
+ end
104
+ Thread.pass unless @shutdown
105
+ end
106
+ end
107
+ end
108
+
109
+ unless R2CORBA::TAO::RUBY_THREAD_SUPPORT
110
+ # starts blocking ORB event loop in MRI Ruby 1.8, i.e. no thread support
111
+ # ret <time left> if !timeout.nil? else void
112
+ def run_blocked(timeout = nil)
113
+ begin
114
+ self.orb_.run(timeout)
115
+ rescue ::NativeException
116
+ CORBA::Exception.native2r($!)
117
+ end
118
+ end
119
+ end
120
+
121
+ # boolean wait_for_completion
122
+ # ret void
123
+ def shutdown(wait_for_completion = false)
124
+ if R2CORBA::TAO::RUBY_THREAD_SUPPORT or !@running
125
+ begin
126
+ self.orb_.shutdown(wait_for_completion)
127
+ rescue ::NativeException
128
+ CORBA::Exception.native2r($!)
129
+ end
130
+ else
131
+ @shutdown = true
132
+ end
133
+ end
134
+
135
+ ## custom
136
+ @@vf_queue = (Class.new(Monitor) do
137
+ def initialize
138
+ @q_ = []
139
+ super
140
+ end
141
+ def push(vfklass)
142
+ synchronize do
143
+ @q_ << vfklass
144
+ end
145
+ end
146
+ def process_all(&block)
147
+ synchronize do
148
+ @q_.each { |vf| block.call(vf) }
149
+ @q_.clear
150
+ end
151
+ end
152
+ def empty?()
153
+ f = false
154
+ synchronize do
155
+ f = @q_.empty?
156
+ end
157
+ f
158
+ end
159
+ end).new
160
+
161
+ def self._check_value_factory(vfklass)
162
+ if @@cached_orb.nil?
163
+ @@vf_queue.push(vfklass)
164
+ else
165
+ vfklass._check_factory
166
+ end
167
+ end
168
+
169
+ # custom R2CORBA extension : IORMap
170
+
171
+ def ior_map
172
+ @iormap ||= R2CORBA::IORMap.new(self)
173
+ end
174
+
175
+ end # ORB
176
+
177
+ =begin
178
+ Signal trapping
179
+ =end
180
+ private
181
+ @@sigreg = {}
182
+ def CORBA.signal_numbers
183
+ ( [1, # HUP
184
+ 2, # INT
185
+ 3, # QUIT
186
+ 5, # TRAP
187
+ 6, # ABRT
188
+ 10, # USR1
189
+ 12, # USR2
190
+ 13, # SIGPIPE
191
+ 14, # ALRM
192
+ 15, # TERM
193
+ 17, # CHLD
194
+ 18, # CONT
195
+ 19, # STOP
196
+ 23, # URG
197
+ 30, # PWR
198
+ 31 # SYS
199
+ ]) & Signal.list.values
200
+ end
201
+
202
+ def CORBA.handled_signals
203
+ @@sigreg.clear
204
+ sigs = self.signal_numbers.collect do |signum|
205
+ sigcmd = Signal.trap(signum, 'DEFAULT')
206
+ Signal.trap(signum, sigcmd)
207
+ @@sigreg[signum] = sigcmd
208
+ if sigcmd.respond_to?(:call) or ['IGNORE','SIG_IGN','EXIT'].include?(sigcmd.to_s)
209
+ signum
210
+ else
211
+ nil
212
+ end
213
+ end.compact
214
+ sigs
215
+ end
216
+
217
+ def CORBA.handle_signal(signum)
218
+ if @@sigreg.has_key?(signum)
219
+ if @@sigreg[signum].respond_to?(:call)
220
+ if @@sigreg[signum].respond_to?(:parameters) && @@sigreg[signum].parameters.size>0
221
+ @@sigreg[signum].call(signum)
222
+ else
223
+ @@sigreg[signum].call
224
+ end
225
+ elsif @@sigreg[signum].to_s == 'EXIT'
226
+ Kernel.exit!(signum)
227
+ end
228
+ end
229
+ end
230
+ end # CORBA
231
+ end # R2CORBA
@@ -0,0 +1,134 @@
1
+ #--------------------------------------------------------------------
2
+ # Request.rb - C++/TAO CORBA Request 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
+ module R2CORBA
14
+ module CORBA
15
+
16
+ module Request
17
+
18
+ def add_in_arg(tc, val, nm='')
19
+ self._arguments << [nm, CORBA::ARG_IN, tc, val]
20
+ self._arguments.size
21
+ end
22
+
23
+ def add_out_arg(tc, nm='')
24
+ self._arguments << [nm, CORBA::ARG_OUT, tc]
25
+ self._arguments.size
26
+ end
27
+
28
+ def add_inout_arg(tc, val, nm='')
29
+ self._arguments << [nm, CORBA::ARG_INOUT, tc, val]
30
+ self._arguments.size
31
+ end
32
+
33
+ def arguments
34
+ self._arguments
35
+ end
36
+
37
+ def arguments=(*args)
38
+ if args.size == 1
39
+ raise ArgumentError, 'invalid argument list' unless ::Array === args.first && args.first.all? {|a| ::Array === a }
40
+ args = args.first
41
+ else
42
+ raise ArgumentError, 'invalid argument list' unless args.all? {|a| ::Array === a }
43
+ end
44
+ # clear current arguments
45
+ self._arguments.clear
46
+ # add new arguments
47
+ args.each do |nm, flag, tc, val|
48
+ case flag
49
+ when CORBA::ARG_IN
50
+ self.add_in_arg(tc, val, nm)
51
+ when CORBA::ARG_OUT
52
+ self.add_out_arg(tc, nm)
53
+ when CORBA::ARG_INOUT
54
+ self.add_inout_arg(tc, val, nm)
55
+ end
56
+ end
57
+ end
58
+
59
+ def exceptions
60
+ self._exceptions
61
+ end
62
+
63
+ def exceptions=(exl)
64
+ self._exceptions.clear
65
+ begin
66
+ self._exceptions.concat(exl)
67
+ rescue
68
+ raise CORBA::BAD_PARAM.new(0, CORBA::COMPLETED_NO)
69
+ end
70
+ end
71
+
72
+ def set_return_type(tc)
73
+ @_rettc = tc
74
+ end
75
+
76
+ def return_value
77
+ return nil if @_rettc.nil? || @_rettc.kind == CORBA::TK_VOID || @_rettc.kind == CORBA::TK_NULL
78
+ self._return_value(@_rettc)
79
+ end
80
+
81
+ def invoke
82
+ self._invoke({
83
+ :arg_list => self._arguments,
84
+ :result_type => @_rettc,
85
+ :exc_list => self._exceptions
86
+ })
87
+ end
88
+
89
+ def send_oneway
90
+ self._send_oneway(self._arguments)
91
+ end
92
+
93
+ def send_deferred
94
+ self._send_deferred({
95
+ :arg_list => self._arguments,
96
+ :result_type => @_rettc,
97
+ :exc_list => self._exceptions
98
+ })
99
+ end
100
+
101
+ def poll_response
102
+ begin
103
+ ret = self._poll_response
104
+ rescue ::NativeException
105
+ CORBA::Exception.native2r($!)
106
+ end
107
+ @_args = self._get_arguments(@_args || []) if ret
108
+ ret
109
+ end
110
+
111
+ def get_response
112
+ begin
113
+ ret = self._get_response
114
+ rescue ::NativeException
115
+ CORBA::Exception.native2r($!)
116
+ end
117
+ @_args = self._get_arguments(@_args || [])
118
+ ret
119
+ end
120
+
121
+ protected
122
+
123
+ def _arguments
124
+ @_args ||= []
125
+ end
126
+
127
+ def _exceptions
128
+ @_excl ||= []
129
+ end
130
+
131
+ end
132
+
133
+ end # CORBA
134
+ end # R2CORBA