r2corba 1.6.1-x64-mingw-ucrt

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 (237) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/README.rdoc +62 -0
  5. data/THANKS +54 -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/ext/.keep +0 -0
  13. data/lib/corba/cbase/IORMap.rb +32 -0
  14. data/lib/corba/cbase/ORB.rb +239 -0
  15. data/lib/corba/cbase/Request.rb +133 -0
  16. data/lib/corba/cbase/Streams.rb +128 -0
  17. data/lib/corba/cbase/Stub.rb +18 -0
  18. data/lib/corba/cbase/Typecode.rb +440 -0
  19. data/lib/corba/cbase/Values.rb +130 -0
  20. data/lib/corba/cbase/exception.rb +67 -0
  21. data/lib/corba/cbase/poa.rb +22 -0
  22. data/lib/corba/cbase/policies.rb +77 -0
  23. data/lib/corba/cbase/post_require.rb +13 -0
  24. data/lib/corba/cbase/require.rb +36 -0
  25. data/lib/corba/cmds/base.rb +84 -0
  26. data/lib/corba/cmds/test.rb +29 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +100 -0
  29. data/lib/corba/common/ORB.rb +367 -0
  30. data/lib/corba/common/Object.rb +211 -0
  31. data/lib/corba/common/Request.rb +19 -0
  32. data/lib/corba/common/Servant.rb +107 -0
  33. data/lib/corba/common/Struct.rb +21 -0
  34. data/lib/corba/common/Stub.rb +78 -0
  35. data/lib/corba/common/Typecode.rb +1147 -0
  36. data/lib/corba/common/Union.rb +60 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +21 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +34 -0
  41. data/lib/corba/common/version.rb +21 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +62 -0
  43. data/lib/corba/idl/CosNamingC.rb +460 -0
  44. data/lib/corba/idl/CosNamingS.rb +308 -0
  45. data/lib/corba/idl/IDL.rb +20 -0
  46. data/lib/corba/idl/IORTable.pidl +61 -0
  47. data/lib/corba/idl/IORTableC.rb +116 -0
  48. data/lib/corba/idl/MessagingC.rb +903 -0
  49. data/lib/corba/idl/POAC.rb +929 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +45 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +178 -0
  52. data/lib/corba/idl/r2c_orb.rb +571 -0
  53. data/lib/corba/idl/require.rb +19 -0
  54. data/lib/corba/jbase/Any.rb +274 -0
  55. data/lib/corba/jbase/IORMap.rb +35 -0
  56. data/lib/corba/jbase/ORB.rb +111 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +225 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +127 -0
  61. data/lib/corba/jbase/Streams.rb +734 -0
  62. data/lib/corba/jbase/Stub.rb +37 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +174 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +228 -0
  67. data/lib/corba/jbase/policies.rb +299 -0
  68. data/lib/corba/jbase/post_require.rb +13 -0
  69. data/lib/corba/jbase/require.rb +92 -0
  70. data/lib/corba/naming.rb +13 -0
  71. data/lib/corba/naming_service.rb +14 -0
  72. data/lib/corba/poa.rb +14 -0
  73. data/lib/corba/policies.rb +17 -0
  74. data/lib/corba/require.rb +16 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +432 -0
  76. data/lib/corba/svcs/ins/ins.rb +525 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +118 -0
  78. data/lib/corba.rb +15 -0
  79. data/lib/ridlbe/ruby/config.rb +340 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +15 -0
  82. data/lib/ridlbe/ruby/walker.rb +1605 -0
  83. data/mkrf_conf_bingem.rb +149 -0
  84. data/rakelib/bin.rake +79 -0
  85. data/rakelib/bin.rb +145 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +51 -0
  88. data/rakelib/config.rb +542 -0
  89. data/rakelib/ext.rake +183 -0
  90. data/rakelib/ext.rb +277 -0
  91. data/rakelib/ext_r2tao.rb +208 -0
  92. data/rakelib/gem.rake +251 -0
  93. data/rakelib/gem.rb +145 -0
  94. data/rakelib/package.rake +25 -0
  95. data/rakelib/test.rake +22 -0
  96. data/test/BiDirectional/Test.idl +33 -0
  97. data/test/BiDirectional/client.rb +131 -0
  98. data/test/BiDirectional/run_test.rb +67 -0
  99. data/test/BiDirectional/server.rb +167 -0
  100. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +26 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/client.rb +120 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +81 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/server.rb +108 -0
  104. data/test/CORBA_Services/Naming/Corbaname/Test.idl +26 -0
  105. data/test/CORBA_Services/Naming/Corbaname/client.rb +84 -0
  106. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +87 -0
  107. data/test/CORBA_Services/Naming/Corbaname/server.rb +134 -0
  108. data/test/CORBA_Services/Naming/Simple/Test.idl +26 -0
  109. data/test/CORBA_Services/Naming/Simple/client.rb +83 -0
  110. data/test/CORBA_Services/Naming/Simple/run_test.rb +81 -0
  111. data/test/CORBA_Services/Naming/Simple/server.rb +108 -0
  112. data/test/Collocation/Diamond.idl +38 -0
  113. data/test/Collocation/run_test.rb +51 -0
  114. data/test/Collocation/test.rb +201 -0
  115. data/test/Connect_Timeout/Test.idl +26 -0
  116. data/test/Connect_Timeout/client.rb +109 -0
  117. data/test/Connect_Timeout/run_test.rb +51 -0
  118. data/test/DII/Test.idl +26 -0
  119. data/test/DII/client.rb +114 -0
  120. data/test/DII/run_test.rb +68 -0
  121. data/test/DII/server.rb +94 -0
  122. data/test/DSI/Test.idl +26 -0
  123. data/test/DSI/client.rb +65 -0
  124. data/test/DSI/run_test.rb +68 -0
  125. data/test/DSI/server.rb +105 -0
  126. data/test/Exceptions/Test.idl +47 -0
  127. data/test/Exceptions/client.rb +117 -0
  128. data/test/Exceptions/run_test.rb +68 -0
  129. data/test/Exceptions/server.rb +130 -0
  130. data/test/Hello/Test.idl +26 -0
  131. data/test/Hello/client.rb +77 -0
  132. data/test/Hello/run_test.rb +70 -0
  133. data/test/Hello/server.rb +94 -0
  134. data/test/IDL_Test/Test.idl +116 -0
  135. data/test/IDL_Test/Test_inc.idl +17 -0
  136. data/test/IDL_Test/client.rb +103 -0
  137. data/test/IDL_Test/run_test.rb +68 -0
  138. data/test/IDL_Test/server.rb +103 -0
  139. data/test/IORMap/Test.idl +26 -0
  140. data/test/IORMap/client.rb +72 -0
  141. data/test/IORMap/run_test.rb +68 -0
  142. data/test/IORMap/server.rb +113 -0
  143. data/test/IORTable/Test.idl +26 -0
  144. data/test/IORTable/client.rb +74 -0
  145. data/test/IORTable/run_test.rb +68 -0
  146. data/test/IORTable/server.rb +129 -0
  147. data/test/Implicit_Conversion/Test.idl +30 -0
  148. data/test/Implicit_Conversion/client.rb +112 -0
  149. data/test/Implicit_Conversion/run_test.rb +68 -0
  150. data/test/Implicit_Conversion/server.rb +98 -0
  151. data/test/Multi_Threading/Multiple_ORB/Test.idl +26 -0
  152. data/test/Multi_Threading/Multiple_ORB/client.rb +81 -0
  153. data/test/Multi_Threading/Multiple_ORB/run_test.rb +70 -0
  154. data/test/Multi_Threading/Multiple_ORB/server.rb +107 -0
  155. data/test/Multi_Threading/Simple/Test.idl +26 -0
  156. data/test/Multi_Threading/Simple/client.rb +92 -0
  157. data/test/Multi_Threading/Simple/run_test.rb +68 -0
  158. data/test/Multi_Threading/Simple/server.rb +117 -0
  159. data/test/Multi_Threading/Threads/Test.idl +27 -0
  160. data/test/Multi_Threading/Threads/client.rb +77 -0
  161. data/test/Multi_Threading/Threads/run_test.rb +75 -0
  162. data/test/Multi_Threading/Threads/server.rb +116 -0
  163. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  164. data/test/Multiple_Servant_Interfaces/Test.idl +33 -0
  165. data/test/Multiple_Servant_Interfaces/client.rb +69 -0
  166. data/test/Multiple_Servant_Interfaces/run_test.rb +68 -0
  167. data/test/Multiple_Servant_Interfaces/server.rb +101 -0
  168. data/test/Nil/Test.idl +26 -0
  169. data/test/Nil/run_test.rb +51 -0
  170. data/test/Nil/test.rb +80 -0
  171. data/test/OBV/AbstractInterface/client.rb +178 -0
  172. data/test/OBV/AbstractInterface/run_test.rb +68 -0
  173. data/test/OBV/AbstractInterface/server.rb +149 -0
  174. data/test/OBV/AbstractInterface/test.idl +52 -0
  175. data/test/OBV/Custom/OBV.idl +18 -0
  176. data/test/OBV/Custom/OBV_impl.rb +41 -0
  177. data/test/OBV/Custom/client.rb +85 -0
  178. data/test/OBV/Custom/run_test.rb +68 -0
  179. data/test/OBV/Custom/server.rb +99 -0
  180. data/test/OBV/Simple/OBV.idl +15 -0
  181. data/test/OBV/Simple/OBV_impl.rb +26 -0
  182. data/test/OBV/Simple/client.rb +85 -0
  183. data/test/OBV/Simple/run_test.rb +68 -0
  184. data/test/OBV/Simple/server.rb +99 -0
  185. data/test/OBV/Simple_Event/Event.idl +15 -0
  186. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  187. data/test/OBV/Simple_Event/client.rb +85 -0
  188. data/test/OBV/Simple_Event/run_test.rb +68 -0
  189. data/test/OBV/Simple_Event/server.rb +99 -0
  190. data/test/OBV/Supports/client.rb +115 -0
  191. data/test/OBV/Supports/run_test.rb +68 -0
  192. data/test/OBV/Supports/server.rb +102 -0
  193. data/test/OBV/Supports/supports.idl +32 -0
  194. data/test/OBV/Supports/supports_impl.rb +59 -0
  195. data/test/OBV/Tree/client.rb +115 -0
  196. data/test/OBV/Tree/run_test.rb +68 -0
  197. data/test/OBV/Tree/server.rb +116 -0
  198. data/test/OBV/Tree/test.idl +31 -0
  199. data/test/OBV/Truncatable/Extra.idl +26 -0
  200. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  201. data/test/OBV/Truncatable/Truncatable_impl.rb +85 -0
  202. data/test/OBV/Truncatable/client.rb +278 -0
  203. data/test/OBV/Truncatable/run_test.rb +68 -0
  204. data/test/OBV/Truncatable/server.rb +88 -0
  205. data/test/OBV/ValueBox/client.rb +497 -0
  206. data/test/OBV/ValueBox/run_test.rb +68 -0
  207. data/test/OBV/ValueBox/server.rb +271 -0
  208. data/test/OBV/ValueBox/valuebox.idl +101 -0
  209. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  210. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  211. data/test/OBV/ValueBox/vb_union.idl +21 -0
  212. data/test/Object/Test.idl +26 -0
  213. data/test/Object/client.rb +111 -0
  214. data/test/Object/run_test.rb +68 -0
  215. data/test/Object/server.rb +125 -0
  216. data/test/POA/Test.idl +27 -0
  217. data/test/POA/run_test.rb +51 -0
  218. data/test/POA/test.rb +111 -0
  219. data/test/Param_Test/Test.idl +182 -0
  220. data/test/Param_Test/client.rb +276 -0
  221. data/test/Param_Test/run_test.rb +68 -0
  222. data/test/Param_Test/server.rb +295 -0
  223. data/test/Performance/Simple/Test.idl +26 -0
  224. data/test/Performance/Simple/client.rb +89 -0
  225. data/test/Performance/Simple/run_test.rb +68 -0
  226. data/test/Performance/Simple/server.rb +94 -0
  227. data/test/Policies/Test.idl +26 -0
  228. data/test/Policies/run_test.rb +51 -0
  229. data/test/Policies/test.rb +142 -0
  230. data/test/Timeout/client.rb +206 -0
  231. data/test/Timeout/run_test.rb +68 -0
  232. data/test/Timeout/server.rb +108 -0
  233. data/test/Timeout/test.idl +18 -0
  234. data/test/lib/assert.rb +41 -0
  235. data/test/lib/test.rb +546 -0
  236. data/test/test_runner.rb +191 -0
  237. metadata +318 -0
data/rakelib/gem.rake ADDED
@@ -0,0 +1,251 @@
1
+ #--------------------------------------------------------------------
2
+ # gem.rake - build file
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
+ #--------------------------------------------------------------------
12
+
13
+ require File.join(File.dirname(__FILE__), 'gem.rb')
14
+
15
+ namespace :r2corba do
16
+ namespace :gem do
17
+ task :srcgem => ['r2corba:bin:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION)}.gem")]
18
+
19
+ task :bingem => ['r2corba:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :bin)}.gem")]
20
+
21
+ task :extbingem => ['r2corba:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :extbin)}.gem")]
22
+
23
+ task :srcbuild => 'r2corba:build' do
24
+ ext_dir = File.expand_path('ext')
25
+ unless defined?(JRUBY_VERSION) || get_config('without-tao')
26
+ # install ACE+TAO dlls
27
+ R2CORBA::Ext.ace_shlibs.each do |acelib|
28
+ libmask = R2CORBA::Config.is_linux ? acelib + '.*' : acelib
29
+ path = Dir.glob(libmask).first
30
+ raise "Cannot find ACE+TAO library #{File.basename(acelib)}." unless path
31
+ FileUtils.install(path, ext_dir, :mode => 0555, :verbose => Rake.verbose)
32
+ # create unversioned symlink
33
+ ln_s(File.join(ext_dir, File.basename(path)), File.join(ext_dir, File.basename(acelib)), :force => true) if R2CORBA::Config.is_linux
34
+ end
35
+ # clean up (uninstall) taosource gem
36
+ require 'rubygems/uninstaller'
37
+ Gem::Uninstaller.new('taosource', :all => true).uninstall
38
+ end
39
+ end
40
+
41
+ task :binbuild => ['r2corba:bin:build', 'r2corba:build_idl'] do
42
+ unless defined?(JRUBY_VERSION)
43
+ if R2CORBA::Config.is_linux
44
+ # create unversioned ACE/TAO lib symlinks
45
+ R2CORBA::Ext.ace_shlibs('.so', 'ext').each do |acelib|
46
+ acelib_ver = File.expand_path(Dir[acelib + '.*'].first)
47
+ ln_s(acelib_ver, acelib)
48
+ end
49
+ end
50
+ unless R2CORBA::Config.is_win32
51
+ # patch RPATH setting of shared libs
52
+ R2CORBA::Gem.patch_extlib_rpath
53
+ end
54
+ end
55
+ end
56
+
57
+ unless defined?(JRUBY_VERSION)
58
+ task :taogem do
59
+ # get version of latest ACE release from internet
60
+ _ace_ver = R2CORBA::Ext.get_latest_ace_version
61
+ # make sure download target dir exists
62
+ Rake.mkdir_p('src')
63
+ # download latest TAO source archive from internet
64
+ R2CORBA::Ext.download_tao_source(_ace_ver, 'src')
65
+ # build gem
66
+ gemspec = R2CORBA::Gem.define_spec('taosource', _ace_ver) do |gem|
67
+ gem.summary = %Q{TAO sourcecode for building R2CORBA}
68
+ gem.description = %Q{TAO sourcecode for building R2CORBA.}
69
+ gem.email = 'mcorino@remedy.nl'
70
+ gem.homepage = 'https://www.remedy.nl/opensource/r2corba.html'
71
+ gem.authors = ['Martin Corino', 'Johnny Willemsen']
72
+ gem.files = Dir['lib/taosource/**/*']
73
+ gem.files.concat(Dir["src/ACE+TAO-src-#{_ace_ver}.tar.gz"])
74
+ gem.files << 'mkrf_conf_taogem.rb'
75
+ gem.extensions = ['mkrf_conf_taogem.rb']
76
+ gem.require_paths = %w{lib}
77
+ gem.executables = []
78
+ gem.required_ruby_version = '>= 2.4'
79
+ gem.licenses = ['DOC']
80
+ gem.metadata = {
81
+ 'bug_tracker_uri' => 'https://github.com/DOCGroup/ACE_TAO/issues',
82
+ 'source_code_uri' => 'https://github.com/DOCGroup/ACE_TAO'
83
+ }
84
+ end
85
+ R2CORBA::Gem.build_gem(gemspec)
86
+ end
87
+ end
88
+ end
89
+ end
90
+
91
+ # source gem file
92
+ t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION)}.gem") => R2CORBA::Gem.manifest do
93
+ gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION) do |gem|
94
+ gem.summary = %Q{CORBA language mapping implementation for Ruby}
95
+ gem.description = %Q{OMG CORBA v3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. }
96
+ gem.email = 'mcorino@remedy.nl'
97
+ gem.homepage = 'https://www.remedy.nl/opensource/r2corba.html'
98
+ gem.authors = ['Martin Corino', 'Johnny Willemsen']
99
+ gem.files = R2CORBA::Gem.manifest
100
+ gem.extensions = ['mkrf_conf_srcgem.rb']
101
+ gem.require_paths = %w{lib}
102
+ gem.executables = %w{ridlc rins r2corba}
103
+ gem.required_ruby_version = '>= 2.4'
104
+ gem.licenses = ['Nonstandard', 'DOC', 'GPL-2.0']
105
+ gem.require_paths << 'ext'
106
+ gem.add_dependency 'ridl', '~> 2.8'
107
+ gem.add_dependency 'rake', '>= 12.3.3'
108
+ gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so' << '--exclude=\\.pidlc'
109
+ gem.metadata = {
110
+ 'bug_tracker_uri' => 'https://github.com/RemedyIT/r2corba/issues',
111
+ 'source_code_uri' => 'https://github.com/RemedyIT/r2corba'
112
+ }
113
+ end
114
+ R2CORBA::Gem.build_gem(gemspec)
115
+ end
116
+ t_.enhance ['mkrf_conf_srcgem.rb']
117
+
118
+ # Extension binaries gem file
119
+ t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :extbin)}.gem") => R2CORBA::Gem.manifest(:extbin, true) do
120
+ unless defined?(JRUBY_VERSION)
121
+ # prepare required shared libs for ext libs
122
+ if R2CORBA::Config.is_win32
123
+ ext_deplibs = R2CORBA::Ext.ace_shlibs + R2CORBA::Ext.sys_dlls
124
+ elsif R2CORBA::Config.is_linux
125
+ ext_deplibs = R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| Dir.glob(acelib).first }
126
+ else
127
+ ext_deplibs = R2CORBA::Ext.ace_shlibs
128
+ end
129
+ ext_deplibs.each {|deplib| cp(deplib, File.join('ext', File.basename(deplib)), :verbose => false) }
130
+ end
131
+ begin
132
+ gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION, :extbin) do |gem|
133
+ gem.summary = %Q{CORBA language mapping implementation for Ruby (extension binaries)}
134
+ gem.description = %Q{OMG CORBA v3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. (extension binaries)}
135
+ gem.email = 'mcorino@remedy.nl'
136
+ gem.homepage = 'https://www.remedy.nl/opensource/r2corba.html'
137
+ gem.authors = ['Martin Corino', 'Johnny Willemsen']
138
+ gem.files = R2CORBA::Gem.manifest(:extbin)
139
+ gem.extensions = []
140
+ gem.require_paths = %w{ext}
141
+ gem.executables = []
142
+ gem.required_ruby_version = '>= 2.4'
143
+ gem.licenses = ['Nonstandard', 'DOC']
144
+ gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so'
145
+ gem.metadata = {
146
+ 'bug_tracker_uri' => 'https://github.com/RemedyIT/r2corba/issues',
147
+ 'source_code_uri' => 'https://github.com/RemedyIT/r2corba'
148
+ }
149
+ end
150
+ R2CORBA::Gem.build_gem(gemspec)
151
+ ensure
152
+ ext_deplibs.each {|deplib| rm_f(File.join('ext', File.basename(deplib)), :verbose => false) } unless defined?(JRUBY_VERSION)
153
+ end
154
+ end
155
+
156
+ # binary gem file
157
+ t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :bin)}.gem") => R2CORBA::Gem.manifest(:bin, true) do
158
+ unless defined?(JRUBY_VERSION)
159
+ if ENV['FULL_BINGEM']
160
+ # prepare required shared libs for ext libs
161
+ if R2CORBA::Config.is_win32
162
+ ext_deplibs = R2CORBA::Ext.ace_shlibs + R2CORBA::Ext.sys_dlls
163
+ elsif R2CORBA::Config.is_linux
164
+ ext_deplibs = R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| Dir.glob(acelib).first }
165
+ else
166
+ ext_deplibs = R2CORBA::Ext.ace_shlibs
167
+ end
168
+ ext_deplibs.each {|deplib| cp(deplib, File.join('ext', File.basename(deplib)), :verbose => false) }
169
+ else
170
+ touch(File.join('ext', '.keep'))
171
+ end
172
+ end
173
+ begin
174
+ # create gemspec
175
+ gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION, :bin) do |gem|
176
+ gem.summary = %Q{CORBA language mapping implementation for Ruby}
177
+ gem.description = %Q{OMG CORBA v3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. }
178
+ gem.email = 'mcorino@remedy.nl'
179
+ gem.homepage = 'https://www.remedy.nl/opensource/r2corba.html'
180
+ gem.authors = ['Martin Corino', 'Johnny Willemsen']
181
+ gem.files = R2CORBA::Gem.manifest(:bin)
182
+ gem.require_paths = %w{lib}
183
+ gem.executables = %w{ridlc rins r2corba}
184
+ gem.extensions = ['mkrf_conf_bingem.rb']
185
+ if defined?(JRUBY_VERSION)
186
+ gem.require_paths << 'jacorb/lib'
187
+ gem.required_ruby_version = '>= 2.4'
188
+ gem.licenses = ['Nonstandard', 'GPL-2.0']
189
+ else
190
+ gem.files << File.join('ext', '.keep') unless ENV['FULL_BINGEM'] # to force installation of ext folder if libs are left out
191
+ gem.required_ruby_version = '>= 2.4'
192
+ gem.licenses = ['Nonstandard', 'DOC', 'GPL-2.0']
193
+ gem.require_paths << 'ext'
194
+ end
195
+ gem.add_dependency 'ridl', '~> 2.8'
196
+ gem.add_dependency 'rake', '>= 12.3.3'
197
+ gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so' << '--exclude=\\.pidlc'
198
+ gem.metadata = {
199
+ 'bug_tracker_uri' => 'https://github.com/RemedyIT/r2corba/issues',
200
+ 'source_code_uri' => 'https://github.com/RemedyIT/r2corba'
201
+ }
202
+ end
203
+ R2CORBA::Gem.build_gem(gemspec)
204
+ ensure
205
+ if ENV['FULL_BINGEM']
206
+ ext_deplibs.each {|deplib| rm_f(File.join('ext', File.basename(deplib)), :verbose => false) } unless defined?(JRUBY_VERSION)
207
+ else
208
+ rm_f(File.join('ext', '.keep')) unless defined?(JRUBY_VERSION)
209
+ end
210
+ end
211
+ end
212
+ t_.enhance ['mkrf_conf_bingem.rb']
213
+
214
+ unless defined?(JRUBY_VERSION)
215
+ # Devkit faker Gem for binary Windows gems
216
+ t_devkit = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba_devkit', '1.0.0', :devkit)}.gem") => 'lib/rubygems_plugin.rb' do
217
+ # create gemspec
218
+ gemspec = R2CORBA::Gem.define_spec('r2corba_devkit', '1.0.0', :devkit) do |gem|
219
+ gem.summary = %Q{R2CORBA Devkit faker for RubyInstaller Rubies}
220
+ gem.description = %Q{Fake Devkit loader to satisfy stupid RubyInstaller pre-install hook. }
221
+ gem.email = 'mcorino@remedy.nl'
222
+ gem.homepage = 'https://www.remedy.nl/opensource/r2corba.html'
223
+ gem.authors = ['Martin Corino', 'Johnny Willemsen']
224
+ gem.files = 'lib/rubygems_plugin.rb'
225
+ gem.require_paths = %w{lib}
226
+ gem.executables = []
227
+ gem.extensions = []
228
+ gem.required_ruby_version = '>= 2.0'
229
+ gem.licenses = ['Nonstandard']
230
+ gem.metadata = {
231
+ 'bug_tracker_uri' => 'https://github.com/RemedyIT/r2corba/issues',
232
+ 'source_code_uri' => 'https://github.com/RemedyIT/r2corba'
233
+ }
234
+ end
235
+ R2CORBA::Gem.build_gem(gemspec)
236
+ end
237
+ namespace :r2corba do
238
+ namespace :gem do
239
+ task :devkit => t_devkit.name
240
+ end
241
+ end
242
+ end
243
+
244
+ desc 'Build R2CORBA gem'
245
+ if defined?(JRUBY_VERSION)
246
+ task :gem => 'r2corba:gem:bingem'
247
+ elsif R2CORBA::Config.is_win32
248
+ task :gem => 'r2corba:gem:bingem'
249
+ else
250
+ task :gem => 'r2corba:gem:srcgem'
251
+ end
data/rakelib/gem.rb ADDED
@@ -0,0 +1,145 @@
1
+ #--------------------------------------------------------------------
2
+ # gem.rb - build file
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
+ #--------------------------------------------------------------------
12
+
13
+ require 'rubygems'
14
+ require 'rubygems/package'
15
+ begin
16
+ require 'rubygems/builder'
17
+ rescue LoadError
18
+ end
19
+
20
+ require File.join(File.dirname(__FILE__), 'config.rb')
21
+ unless defined?(JRUBY_VERSION)
22
+ require File.join(File.dirname(__FILE__), 'ext.rb')
23
+ end
24
+
25
+ module R2CORBA
26
+
27
+ module Gem
28
+
29
+ unless defined?(JRUBY_VERSION)
30
+
31
+ @@ace_dlls = nil
32
+
33
+ def self.ace_dlls
34
+ unless @@ace_dlls
35
+ @@ace_dlls = []
36
+ # collect required dll paths
37
+ if R2CORBA::Config.is_win32
38
+ @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs(R2CORBA::Ext.so_ext, 'ext'))
39
+ @@ace_dlls.concat(R2CORBA::Ext.sys_dlls.collect {|sysdll| File.join('ext', File.basename(sysdll))})
40
+ elsif R2CORBA::Config.is_linux
41
+ @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| File.join('ext', File.basename(Dir.glob(acelib).first)) })
42
+ else
43
+ @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs(R2CORBA::Ext.so_ext, 'ext'))
44
+ end
45
+ end
46
+ @@ace_dlls
47
+ end
48
+ end
49
+
50
+ def self.manifest(gemtype = :src, exclude_ace_dll = false)
51
+ # create MANIFEST list with included files
52
+ manifest = []
53
+ if gemtype == :bin
54
+ manifest.concat %w{bin/ridlc bin/rins bin/r2corba}
55
+ manifest.concat %w{bin/ridlc.bat bin/rins.bat bin/r2corba.bat} if R2CORBA::Config.is_win32 || defined?(JRUBY_VERSION)
56
+ if defined?(JRUBY_VERSION)
57
+ manifest.concat(Dir['jacorb/lib/*.jar'].select do |fnm|
58
+ !%w{idl jacorb-sources picocontainer wrapper}.any? {|nm| /^#{nm}/ =~ File.basename(fnm) }
59
+ end)
60
+ elsif ENV['FULL_BINGEM']
61
+ manifest.concat(R2CORBA::Gem.ace_dlls) unless exclude_ace_dll
62
+ manifest.concat(Dir['ext/*.so'])
63
+ end
64
+ manifest.concat Dir['lib/corba/**/*']
65
+ manifest.concat Dir['lib/ridlbe/**/*']
66
+ manifest << 'lib/corba.rb'
67
+ manifest.concat Dir['test/**/*']
68
+ manifest.concat %w{LICENSE README.rdoc THANKS CHANGES mkrf_conf_bingem.rb}
69
+ manifest << 'LICENSE.jacorb' if defined?(JRUBY_VERSION)
70
+ elsif gemtype == :extbin
71
+ unless defined?(JRUBY_VERSION)
72
+ manifest.concat(R2CORBA::Gem.ace_dlls) unless exclude_ace_dll
73
+ manifest.concat(Dir['ext/*.so'])
74
+ end
75
+ else
76
+ manifest.concat %w{bin/ridlc bin/rins bin/r2corba}
77
+ manifest.concat Dir['ext/**/*.{rb,c,cpp,h,mwc}']
78
+ manifest.concat Dir['lib/corba/**/*[^CS].*'].select {|path| File.basename(path) != 'r2c_orb.rb'}
79
+ manifest.concat Dir['lib/ridlbe/**/*.[^p]*']
80
+ manifest << 'lib/corba.rb'
81
+ manifest.concat Dir['test/**/*']
82
+ manifest.concat %w{LICENSE README.rdoc THANKS CHANGES mkrf_conf_srcgem.rb}
83
+ end
84
+ unless gemtype == :extbin
85
+ if defined?(JRUBY_VERSION)
86
+ manifest.concat(Dir['rakelib/**/*'].select {|fnm| /install|help|ext/ =~ fnm ? false : true })
87
+ else
88
+ manifest.concat(Dir['rakelib/**/*'].select {|fnm| /install|help/ =~ fnm ? false : true })
89
+ end
90
+ end
91
+ manifest
92
+ end
93
+
94
+ def self.define_spec(name, version, gemtype = :src, &block)
95
+ name += '_ext' if gemtype == :extbin && !defined?(JRUBY_VERSION)
96
+ name = "#{name}#{R2CORBA::Config.rb_ver_major}#{R2CORBA::Config.rb_ver_minor}" if (gemtype == :extbin || (gemtype == :bin && ENV['FULL_BINGEM'])) && !defined?(JRUBY_VERSION)
97
+ gemspec = ::Gem::Specification.new(name, version.dup)
98
+ if gemtype == :bin || gemtype == :extbin
99
+ gemspec.platform = defined?(JRUBY_VERSION) ? ::Gem::Platform.new('universal-java') : ::Gem::Platform::CURRENT
100
+ end
101
+ gemspec.required_rubygems_version = ::Gem::Requirement.new('>= 0') if gemspec.respond_to? :required_rubygems_version=
102
+ block.call(gemspec) if block_given?
103
+ gemspec
104
+ end
105
+
106
+ def self.gem_name(name, version, gemtype = :src)
107
+ name += '_ext' if gemtype == :extbin && !defined?(JRUBY_VERSION)
108
+ name = "#{name}#{R2CORBA::Config.rb_ver_major}#{R2CORBA::Config.rb_ver_minor}" if (gemtype == :extbin || (gemtype == :bin && ENV['FULL_BINGEM'])) && !defined?(JRUBY_VERSION)
109
+ gemspec = ::Gem::Specification.new(name, version.dup)
110
+ if gemtype == :bin || gemtype == :extbin
111
+ gemspec.platform = defined?(JRUBY_VERSION) ? ::Gem::Platform.new('universal-java') : ::Gem::Platform::CURRENT
112
+ end
113
+ gemspec.full_name
114
+ end
115
+
116
+ def self.build_gem(gemspec)
117
+ if defined?(::Gem::Package) && ::Gem::Package.respond_to?(:build)
118
+ gem_file_name = ::Gem::Package.build(gemspec)
119
+ else
120
+ gem_file_name = ::Gem::Builder.new(gemspec).build
121
+ end
122
+
123
+ FileUtils.mkdir_p('pkg')
124
+
125
+ FileUtils.mv(gem_file_name, 'pkg')
126
+ end
127
+
128
+ unless defined?(JRUBY_VERSION) || R2CORBA::Config.is_win32
129
+ def self.patch_extlib_rpath
130
+ if R2CORBA::Config.is_osx
131
+ # TODO
132
+ else
133
+ rpath = "#{File.expand_path('ext')}:#{get_config('libdir')}"
134
+ Dir['ext/*.so'].each do |extlib|
135
+ unless Rake.sh("#{R2CORBA::Config.rpath_patch} '#{rpath}' #{extlib}")
136
+ raise 'Failed to patch RPATH for #{extlib}'
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
142
+
143
+ end
144
+
145
+ end
@@ -0,0 +1,25 @@
1
+ #--------------------------------------------------------------------
2
+ # package.rake - build file
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
+ #--------------------------------------------------------------------
12
+
13
+ require 'rake/packagetask'
14
+
15
+ require File.join(File.dirname(__FILE__), 'config.rb')
16
+
17
+ Rake::PackageTask.new('r2corba', R2CORBA::R2CORBA_VERSION) do |p|
18
+ p.need_tar_gz = true
19
+ p.need_zip = true
20
+ p.package_files.include(%w{ext/**/*.{mwc,cpp,c,h}})
21
+ p.package_files.include(%w{example/**/* lib/**/*[^C].* test/**/* rpmbuild/**/* rakelib/**/*})
22
+ p.package_files.exclude(/GNUmakefile/)
23
+ p.package_files.include(%w{CHANGES INSTALL* LICENSE* Gemfile Rakefile README.rdoc THANKS mkrf_conf*.rb})
24
+ p.package_files.include(%w{ridl/lib/**/*}) if ENV['R2CORBA_PKG_RIDL']
25
+ end
data/rakelib/test.rake ADDED
@@ -0,0 +1,22 @@
1
+ #--------------------------------------------------------------------
2
+ # test.rake - build file
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
+ #--------------------------------------------------------------------
12
+
13
+ require File.join(File.dirname(__FILE__), 'config.rb')
14
+
15
+ namespace :r2corba do
16
+ task :test => [R2CORBA::BUILD_CFG, 'r2corba:build'] do
17
+ ruby(File.join('test', 'test_runner.rb'))
18
+ end
19
+ end
20
+
21
+ desc 'Run R2CORBA tests'
22
+ task :test => 'r2corba:test'
@@ -0,0 +1,33 @@
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
+ *--------------------------------------------------------------------*/
10
+
11
+ interface Callback
12
+ {
13
+ oneway void shutdown ();
14
+ // A safe way to shutdown the client, using either clean shutdowns
15
+ // or "catastrophic failures".
16
+
17
+ void callback_method ();
18
+ // A simple remote call
19
+
20
+ };
21
+
22
+ interface Simple_Server
23
+ {
24
+ long test_method (in boolean do_callback);
25
+ // Just call a method on the server,
26
+
27
+ void callback_object (in Callback cb);
28
+ // send the callback object to the server
29
+
30
+ oneway void shutdown ();
31
+ // A safe way to shutdown the server, it is a oneway function so we
32
+ // will never get a COMM_FAILURE error
33
+ };
@@ -0,0 +1,131 @@
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
+ #--------------------------------------------------------------------
10
+ require 'optparse'
11
+ require 'lib/assert.rb'
12
+ include TestUtil::Assertions
13
+
14
+ OPTIONS = {
15
+ :use_implement => false,
16
+ :orb_debuglevel => 0,
17
+ :iorfile => 'file://server.ior'
18
+ }
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('--k IORFILE',
27
+ 'Set IOR.',
28
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile] = v }
29
+ opts.on('--d LVL',
30
+ 'Set ORBDebugLevel value.',
31
+ 'Default: 0', Integer) { |v| OPTIONS[:orb_debuglevel] = v }
32
+ opts.on('--use-implement',
33
+ 'Load IDL through CORBA.implement() instead of precompiled code.',
34
+ 'Default: off') { |v| OPTIONS[:use_implement] = v }
35
+
36
+ opts.separator ''
37
+
38
+ opts.on('-h', '--help',
39
+ 'Show this help message.') { puts opts; exit }
40
+
41
+ opts.parse!
42
+ end
43
+
44
+ if OPTIONS[:use_implement]
45
+ require 'corba/poa.rb'
46
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
47
+ else
48
+ require 'TestS.rb'
49
+ end
50
+ require 'corba/policies.rb'
51
+
52
+ class MyCallback < POA::Callback
53
+ def initialize(orb)
54
+ @orb = orb
55
+ end
56
+
57
+ def shutdown() # oneway
58
+ @orb.shutdown(false)
59
+ end
60
+
61
+ def callback_method()
62
+ if OPTIONS[:orb_debuglevel] > 0
63
+ puts 'Callback method called.'
64
+ end
65
+ end
66
+
67
+ end # of servant Callback
68
+
69
+ if defined?(JRUBY_VERSION)
70
+ ## JacORB needs explicit activation of this option
71
+ props = {
72
+ 'org.omg.PortableInterceptor.ORBInitializerClass.bidir_init' =>
73
+ 'org.jacorb.orb.giop.BiDirConnectionInitializer'
74
+ }
75
+ else
76
+ props = {}
77
+ end
78
+
79
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB', props)
80
+
81
+ begin
82
+
83
+ obj = orb.resolve_initial_references('RootPOA')
84
+
85
+ root_poa = PortableServer::POA._narrow(obj)
86
+
87
+ poa_man = root_poa.the_POAManager
88
+
89
+ policies = []
90
+ policies << orb.create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE,
91
+ CORBA::Any.to_any(BiDirPolicy::BOTH, BiDirPolicy::BidirectionalPolicyValue._tc))
92
+
93
+ puts 'policies created'
94
+
95
+ child_poa = root_poa.create_POA('childPOA', poa_man, policies)
96
+
97
+ puts 'child_poa created'
98
+
99
+ policies.each { |pol| pol.destroy() }
100
+
101
+ puts 'policies destroyed'
102
+
103
+ poa_man.activate
104
+
105
+ obj = orb.string_to_object(OPTIONS[:iorfile])
106
+
107
+ assert_not 'Object reference is nil.', CORBA::is_nil(obj)
108
+
109
+ simple_srv = Simple_Server._narrow(obj)
110
+
111
+ callback_i = MyCallback.new(orb)
112
+
113
+ callback_ref = callback_i._this()
114
+
115
+ # Send the calback object to the server
116
+ simple_srv.callback_object(callback_ref)
117
+
118
+ # A method to kickstart callbacks from the server
119
+ r = simple_srv.test_method(true)
120
+
121
+ assert "unexpected result = #{r}", r == 0
122
+
123
+ orb.run()
124
+
125
+ root_poa.destroy(1, 1)
126
+
127
+ ensure
128
+
129
+ orb.destroy()
130
+
131
+ end
@@ -0,0 +1,67 @@
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
+ #--------------------------------------------------------------------
10
+
11
+ OPTIONS = {
12
+ :debug_opt => '',
13
+ :use_implement => '--use-implement'
14
+ }
15
+
16
+ require 'optparse'
17
+
18
+ ARGV.options do |opts|
19
+ script_name = File.basename($0)
20
+ opts.banner = "Usage: ruby #{script_name} [options]"
21
+
22
+ opts.separator ''
23
+
24
+ opts.on('-d',
25
+ 'Run with debugging output.',
26
+ 'Default: false') { OPTIONS[:debug_opt] = '--d 10' }
27
+ opts.on('--use-stubs',
28
+ 'Use stubs generated by RIDL.',
29
+ 'Default: false (uses embedded IDL)') { OPTIONS[:use_implement] = '' }
30
+
31
+ opts.separator ''
32
+
33
+ opts.on('-h', '--help',
34
+ 'Show this help message.') { puts opts; exit }
35
+
36
+ opts.parse!
37
+ end
38
+
39
+ require 'lib/test.rb'
40
+ include TestUtil
41
+
42
+ ior_file = 'server.ior'
43
+
44
+ TestUtil.remove_file(ior_file)
45
+
46
+ srv = Test.new
47
+
48
+ exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
49
+
50
+ TestUtil.wait_for_file(ior_file, 400)
51
+
52
+ clt = Test.new
53
+
54
+ if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
55
+ srv.kill(100)
56
+ exit(255)
57
+ end
58
+
59
+ exrc = clt.wait(400)
60
+
61
+ if exrc == 0
62
+ srv.wait(400)
63
+ else
64
+ srv.wait_term(400)
65
+ end
66
+
67
+ exit(exrc)