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.
- checksums.yaml +7 -0
- data/CHANGES +173 -0
- data/LICENSE +59 -0
- data/LICENSE.jacorb +660 -0
- data/README +62 -0
- data/THANKS +54 -0
- data/bin/r2corba +8 -0
- data/bin/r2corba.bat +20 -0
- data/bin/ridlc +11 -0
- data/bin/ridlc.bat +23 -0
- data/bin/rins +7 -0
- data/bin/rins.bat +19 -0
- data/jacorb/lib/antlr-2.7.2.jar +0 -0
- data/jacorb/lib/jacorb-3.5.jar +0 -0
- data/jacorb/lib/jacorb-omgapi-3.5.jar +0 -0
- data/jacorb/lib/jacorb-services-3.5.jar +0 -0
- data/jacorb/lib/slf4j-api-1.7.6.jar +0 -0
- data/jacorb/lib/slf4j-jdk14-1.7.6.jar +0 -0
- data/lib/corba.rb +16 -0
- data/lib/corba/cbase/IORMap.rb +33 -0
- data/lib/corba/cbase/ORB.rb +237 -0
- data/lib/corba/cbase/Request.rb +134 -0
- data/lib/corba/cbase/Streams.rb +129 -0
- data/lib/corba/cbase/Stub.rb +19 -0
- data/lib/corba/cbase/Typecode.rb +441 -0
- data/lib/corba/cbase/Values.rb +129 -0
- data/lib/corba/cbase/exception.rb +66 -0
- data/lib/corba/cbase/poa.rb +23 -0
- data/lib/corba/cbase/policies.rb +78 -0
- data/lib/corba/cbase/post_require.rb +14 -0
- data/lib/corba/cbase/require.rb +28 -0
- data/lib/corba/cmds/base.rb +85 -0
- data/lib/corba/cmds/test.rb +30 -0
- data/lib/corba/common/Any.rb +91 -0
- data/lib/corba/common/IDL.rb +104 -0
- data/lib/corba/common/ORB.rb +368 -0
- data/lib/corba/common/Object.rb +208 -0
- data/lib/corba/common/Request.rb +20 -0
- data/lib/corba/common/Servant.rb +108 -0
- data/lib/corba/common/Struct.rb +22 -0
- data/lib/corba/common/Stub.rb +79 -0
- data/lib/corba/common/Typecode.rb +1121 -0
- data/lib/corba/common/Union.rb +56 -0
- data/lib/corba/common/Values.rb +92 -0
- data/lib/corba/common/const.rb +22 -0
- data/lib/corba/common/exception.rb +68 -0
- data/lib/corba/common/require.rb +27 -0
- data/lib/corba/common/version.rb +22 -0
- data/lib/corba/idl/BiDirPolicyC.rb +63 -0
- data/lib/corba/idl/CosNamingC.rb +461 -0
- data/lib/corba/idl/CosNamingS.rb +309 -0
- data/lib/corba/idl/IDL.rb +21 -0
- data/lib/corba/idl/IORTable.pidl +62 -0
- data/lib/corba/idl/MessagingC.rb +904 -0
- data/lib/corba/idl/POAC.rb +930 -0
- data/lib/corba/idl/TAO_Ext.pidl +46 -0
- data/lib/corba/idl/r2c_orb.rb +572 -0
- data/lib/corba/idl/require.rb +20 -0
- data/lib/corba/jbase/Any.rb +273 -0
- data/lib/corba/jbase/IORMap.rb +36 -0
- data/lib/corba/jbase/ORB.rb +112 -0
- data/lib/corba/jbase/Object.rb +99 -0
- data/lib/corba/jbase/Request.rb +226 -0
- data/lib/corba/jbase/Servant.rb +248 -0
- data/lib/corba/jbase/ServerRequest.rb +128 -0
- data/lib/corba/jbase/Streams.rb +671 -0
- data/lib/corba/jbase/Stub.rb +38 -0
- data/lib/corba/jbase/Typecode.rb +520 -0
- data/lib/corba/jbase/Values.rb +173 -0
- data/lib/corba/jbase/exception.rb +106 -0
- data/lib/corba/jbase/poa.rb +229 -0
- data/lib/corba/jbase/policies.rb +300 -0
- data/lib/corba/jbase/post_require.rb +14 -0
- data/lib/corba/jbase/require.rb +89 -0
- data/lib/corba/naming.rb +14 -0
- data/lib/corba/naming_service.rb +15 -0
- data/lib/corba/poa.rb +15 -0
- data/lib/corba/policies.rb +18 -0
- data/lib/corba/require.rb +17 -0
- data/lib/corba/svcs/ins/cos_naming.rb +426 -0
- data/lib/corba/svcs/ins/ins.rb +526 -0
- data/lib/corba/svcs/ins/naming_service.rb +119 -0
- data/lib/ridlbe/ruby/config.rb +336 -0
- data/lib/ridlbe/ruby/orb.pidlc +0 -0
- data/lib/ridlbe/ruby/require.rb +16 -0
- data/lib/ridlbe/ruby/walker.rb +1582 -0
- data/mkrf_conf_bingem.rb +151 -0
- data/rakelib/bin.rake +80 -0
- data/rakelib/bin.rb +146 -0
- data/rakelib/build.rake +87 -0
- data/rakelib/config.rake +52 -0
- data/rakelib/config.rb +544 -0
- data/rakelib/gem.rake +236 -0
- data/rakelib/gem.rb +146 -0
- data/rakelib/package.rake +26 -0
- data/rakelib/test.rake +23 -0
- data/test/BiDirectional/Test.idl +34 -0
- data/test/BiDirectional/client.rb +132 -0
- data/test/BiDirectional/run_test.rb +68 -0
- data/test/BiDirectional/server.ior +1 -0
- data/test/BiDirectional/server.rb +169 -0
- data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
- data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
- data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
- data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
- data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
- data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
- data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
- data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
- data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
- data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
- data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
- data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
- data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
- data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
- data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
- data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
- data/test/Collocation/Diamond.idl +39 -0
- data/test/Collocation/run_test.rb +52 -0
- data/test/Collocation/test.rb +195 -0
- data/test/Connect_Timeout/Test.idl +27 -0
- data/test/Connect_Timeout/client.rb +111 -0
- data/test/Connect_Timeout/run_test.rb +52 -0
- data/test/DII/Test.idl +27 -0
- data/test/DII/client.rb +115 -0
- data/test/DII/run_test.rb +69 -0
- data/test/DII/server.ior +1 -0
- data/test/DII/server.rb +95 -0
- data/test/DSI/Test.idl +27 -0
- data/test/DSI/client.rb +66 -0
- data/test/DSI/run_test.rb +69 -0
- data/test/DSI/server.ior +1 -0
- data/test/DSI/server.rb +106 -0
- data/test/Exceptions/Test.idl +48 -0
- data/test/Exceptions/client.rb +118 -0
- data/test/Exceptions/run_test.rb +69 -0
- data/test/Exceptions/server.ior +1 -0
- data/test/Exceptions/server.rb +131 -0
- data/test/Hello/Test.idl +27 -0
- data/test/Hello/client.rb +78 -0
- data/test/Hello/gateway.ior +1 -0
- data/test/Hello/run_test.rb +71 -0
- data/test/Hello/server.rb +95 -0
- data/test/IDL_Test/Test.idl +113 -0
- data/test/IDL_Test/Test_inc.idl +17 -0
- data/test/IDL_Test/client.rb +102 -0
- data/test/IDL_Test/run_test.rb +69 -0
- data/test/IDL_Test/server.ior +1 -0
- data/test/IDL_Test/server.rb +99 -0
- data/test/IORMap/Test.idl +27 -0
- data/test/IORMap/client.rb +73 -0
- data/test/IORMap/run_test.rb +69 -0
- data/test/IORMap/server.ior +1 -0
- data/test/IORMap/server.rb +114 -0
- data/test/IORTable/Test.idl +27 -0
- data/test/IORTable/client.rb +75 -0
- data/test/IORTable/run_test.rb +69 -0
- data/test/IORTable/server.ior +0 -0
- data/test/IORTable/server.rb +130 -0
- data/test/Implicit_Conversion/Test.idl +31 -0
- data/test/Implicit_Conversion/client.rb +110 -0
- data/test/Implicit_Conversion/run_test.rb +69 -0
- data/test/Implicit_Conversion/server.ior +1 -0
- data/test/Implicit_Conversion/server.rb +99 -0
- data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
- data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
- data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
- data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
- data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
- data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
- data/test/Multi_Threading/Simple/Test.idl +27 -0
- data/test/Multi_Threading/Simple/client.rb +93 -0
- data/test/Multi_Threading/Simple/run_test.rb +69 -0
- data/test/Multi_Threading/Simple/server.ior +1 -0
- data/test/Multi_Threading/Simple/server.rb +118 -0
- data/test/Multi_Threading/Threads/Test.idl +31 -0
- data/test/Multi_Threading/Threads/client.rb +80 -0
- data/test/Multi_Threading/Threads/run_test.rb +76 -0
- data/test/Multi_Threading/Threads/server.ior +1 -0
- data/test/Multi_Threading/Threads/server.rb +119 -0
- data/test/Multi_Threading/Threads/watchdog.ior +1 -0
- data/test/Multi_Threading/Threads/watchdog.rb +87 -0
- data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
- data/test/Multiple_Servant_Interfaces/client.rb +70 -0
- data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
- data/test/Multiple_Servant_Interfaces/server.ior +1 -0
- data/test/Multiple_Servant_Interfaces/server.rb +102 -0
- data/test/Nil/Test.idl +27 -0
- data/test/Nil/run_test.rb +52 -0
- data/test/Nil/test.rb +78 -0
- data/test/OBV/AbstractInterface/client.rb +179 -0
- data/test/OBV/AbstractInterface/run_test.rb +69 -0
- data/test/OBV/AbstractInterface/server.ior +1 -0
- data/test/OBV/AbstractInterface/server.rb +149 -0
- data/test/OBV/AbstractInterface/test.idl +53 -0
- data/test/OBV/Custom/OBV.idl +18 -0
- data/test/OBV/Custom/OBV_impl.rb +40 -0
- data/test/OBV/Custom/client.rb +86 -0
- data/test/OBV/Custom/run_test.rb +69 -0
- data/test/OBV/Custom/server.ior +1 -0
- data/test/OBV/Custom/server.rb +100 -0
- data/test/OBV/Simple/OBV.idl +15 -0
- data/test/OBV/Simple/OBV_impl.rb +26 -0
- data/test/OBV/Simple/client.rb +86 -0
- data/test/OBV/Simple/run_test.rb +69 -0
- data/test/OBV/Simple/server.ior +1 -0
- data/test/OBV/Simple/server.rb +100 -0
- data/test/OBV/Simple_Event/Event.idl +15 -0
- data/test/OBV/Simple_Event/Event_impl.rb +26 -0
- data/test/OBV/Simple_Event/client.rb +86 -0
- data/test/OBV/Simple_Event/run_test.rb +69 -0
- data/test/OBV/Simple_Event/server.ior +1 -0
- data/test/OBV/Simple_Event/server.rb +100 -0
- data/test/OBV/Supports/client.rb +116 -0
- data/test/OBV/Supports/run_test.rb +69 -0
- data/test/OBV/Supports/server.ior +1 -0
- data/test/OBV/Supports/server.rb +103 -0
- data/test/OBV/Supports/supports.idl +33 -0
- data/test/OBV/Supports/supports_impl.rb +57 -0
- data/test/OBV/Tree/client.rb +116 -0
- data/test/OBV/Tree/run_test.rb +69 -0
- data/test/OBV/Tree/server.ior +1 -0
- data/test/OBV/Tree/server.rb +117 -0
- data/test/OBV/Tree/test.idl +32 -0
- data/test/OBV/Truncatable/Extra.idl +27 -0
- data/test/OBV/Truncatable/Truncatable.idl +105 -0
- data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
- data/test/OBV/Truncatable/client.rb +279 -0
- data/test/OBV/Truncatable/run_test.rb +69 -0
- data/test/OBV/Truncatable/server.ior +1 -0
- data/test/OBV/Truncatable/server.rb +89 -0
- data/test/OBV/ValueBox/client.rb +497 -0
- data/test/OBV/ValueBox/run_test.rb +69 -0
- data/test/OBV/ValueBox/server.ior +1 -0
- data/test/OBV/ValueBox/server.rb +271 -0
- data/test/OBV/ValueBox/valuebox.idl +101 -0
- data/test/OBV/ValueBox/vb_basic.idl +75 -0
- data/test/OBV/ValueBox/vb_struct.idl +68 -0
- data/test/OBV/ValueBox/vb_union.idl +21 -0
- data/test/Object/Test.idl +27 -0
- data/test/Object/client.rb +112 -0
- data/test/Object/run_test.rb +69 -0
- data/test/Object/server.ior +1 -0
- data/test/Object/server.rb +126 -0
- data/test/POA/Test.idl +27 -0
- data/test/POA/run_test.rb +52 -0
- data/test/POA/test.rb +112 -0
- data/test/Param_Test/Test.idl +182 -0
- data/test/Param_Test/client.rb +277 -0
- data/test/Param_Test/run_test.rb +69 -0
- data/test/Param_Test/server.ior +1 -0
- data/test/Param_Test/server.rb +296 -0
- data/test/Performance/Simple/Test.idl +27 -0
- data/test/Performance/Simple/client.rb +90 -0
- data/test/Performance/Simple/run_test.rb +69 -0
- data/test/Performance/Simple/server.ior +1 -0
- data/test/Performance/Simple/server.rb +95 -0
- data/test/Policies/Test.idl +27 -0
- data/test/Policies/run_test.rb +52 -0
- data/test/Policies/test.rb +144 -0
- data/test/Timeout/client.rb +207 -0
- data/test/Timeout/run_test.rb +69 -0
- data/test/Timeout/server.ior +1 -0
- data/test/Timeout/server.rb +109 -0
- data/test/Timeout/test.idl +19 -0
- data/test/lib/assert.rb +43 -0
- data/test/lib/test.rb +542 -0
- data/test/test.log +20 -0
- data/test/test2.log +5000 -0
- data/test/test_runner.rb +193 -0
- metadata +349 -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,54 @@
|
|
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
|
+
|
53
|
+
* Andrey Mramornov for reporting and testing the R2CORBA build
|
54
|
+
problems on Ubuntu.
|
data/bin/r2corba
ADDED
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
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
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
|
Binary file
|
data/lib/corba.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# corba.rb -
|
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
|
+
require "corba/require.rb"
|
15
|
+
|
16
|
+
include R2CORBA
|
@@ -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,237 @@
|
|
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
|
+
class << self
|
21
|
+
protected
|
22
|
+
def _singleton_orb_init
|
23
|
+
CORBA::Native::ORB.init
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
@@_default_args = []
|
28
|
+
unless R2CORBA::TAO::RUBY_THREAD_SUPPORT
|
29
|
+
# to prevent problems with "green threads" model of Ruby <=1.8.x run TAO
|
30
|
+
# without nested upcalls; preventing thread reuse and re-entrancy
|
31
|
+
@@_default_args << '-ORBSvcConfDirective'
|
32
|
+
@@_default_args << 'static Client_Strategy_Factory "-ORBClientConnectionHandler MT_NOUPCALL"'
|
33
|
+
end
|
34
|
+
|
35
|
+
## init() or init(arg1, arg2, arg3[, ...]) or init(orb_id, prop = {}) or init(argv, orb_id, prop={}) or init(argv, prop={})
|
36
|
+
def self.init(*args)
|
37
|
+
n_orb = if args.empty? && @@_default_args.empty?
|
38
|
+
_singleton_orb_init
|
39
|
+
else
|
40
|
+
argv = []
|
41
|
+
orb_id = nil
|
42
|
+
prop = nil
|
43
|
+
a1, a2, a3 = args
|
44
|
+
if Array === a1
|
45
|
+
raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size>3
|
46
|
+
argv = a1
|
47
|
+
orb_id = (Hash === a2 ? nil : a2)
|
48
|
+
prop = (Hash === a2 ? a2 : a3)
|
49
|
+
elsif args.size == 1 || Hash === a2
|
50
|
+
raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size>2
|
51
|
+
orb_id = a1
|
52
|
+
prop = a2
|
53
|
+
else
|
54
|
+
argv = args
|
55
|
+
end
|
56
|
+
raise ArgumentError, "Invalid argument #{prop.class}; expected Hash" unless prop.nil? || Hash === prop
|
57
|
+
unless prop.nil?()
|
58
|
+
prop.inject(argv) {|a,(k,v)| a << k; a << v; a}
|
59
|
+
end
|
60
|
+
@@cached_orb = CORBA::Native::ORB.init(argv.collect {|a| a.to_s }.concat(@@_default_args), orb_id.nil?() ? nil : orb_id.to_s)
|
61
|
+
end
|
62
|
+
unless n_orb.nil?() || @@vf_queue.empty?()
|
63
|
+
@@vf_queue.process_all { |vfklass| vfklass._check_factory }
|
64
|
+
end
|
65
|
+
@@wrapper_klass.new(n_orb)
|
66
|
+
end
|
67
|
+
|
68
|
+
=begin
|
69
|
+
// Thread related operations
|
70
|
+
=end
|
71
|
+
|
72
|
+
# ret [boolean, <time left>] if !timeout.nil? else boolean
|
73
|
+
def work_pending(timeout = nil)
|
74
|
+
begin
|
75
|
+
self.orb_.work_pending(timeout)
|
76
|
+
rescue ::NativeException
|
77
|
+
CORBA::Exception.native2r($!)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
# ret <time left> if !timeout.nil? else void
|
82
|
+
def perform_work(timeout = nil)
|
83
|
+
begin
|
84
|
+
self.orb_.perform_work(timeout)
|
85
|
+
rescue ::NativeException
|
86
|
+
CORBA::Exception.native2r($!)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# safe to run in thread; even in pre-1.9 MRI Ruby
|
91
|
+
# ret <time left> if !timeout.nil? else void
|
92
|
+
def run(timeout = nil)
|
93
|
+
if R2CORBA::TAO::RUBY_THREAD_SUPPORT
|
94
|
+
begin
|
95
|
+
self.orb_.run(timeout)
|
96
|
+
rescue ::NativeException
|
97
|
+
CORBA::Exception.native2r($!)
|
98
|
+
end
|
99
|
+
else
|
100
|
+
@running ||= true
|
101
|
+
raise CORBA::BAD_INV_ORDER.new('ORB has been shutdown', 0, CORBA::COMPLETED_NO) if @shutdown
|
102
|
+
while (timeout.nil? or timeout>0) and !@shutdown
|
103
|
+
to = timeout || 0.05
|
104
|
+
f, to = self.work_pending(to)
|
105
|
+
timeout = to unless timeout.nil?
|
106
|
+
if f and !@shutdown and (timeout.nil? or timeout>0)
|
107
|
+
to = timeout || 0.05
|
108
|
+
to = self.perform_work(to)
|
109
|
+
timeout = to unless timeout.nil?
|
110
|
+
end
|
111
|
+
Thread.pass unless @shutdown
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
unless R2CORBA::TAO::RUBY_THREAD_SUPPORT
|
117
|
+
# starts blocking ORB event loop in MRI Ruby 1.8, i.e. no thread support
|
118
|
+
# ret <time left> if !timeout.nil? else void
|
119
|
+
def run_blocked(timeout = nil)
|
120
|
+
begin
|
121
|
+
self.orb_.run(timeout)
|
122
|
+
rescue ::NativeException
|
123
|
+
CORBA::Exception.native2r($!)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
# boolean wait_for_completion
|
129
|
+
# ret void
|
130
|
+
def shutdown(wait_for_completion = false)
|
131
|
+
if R2CORBA::TAO::RUBY_THREAD_SUPPORT or !@running
|
132
|
+
begin
|
133
|
+
self.orb_.shutdown(wait_for_completion)
|
134
|
+
rescue ::NativeException
|
135
|
+
CORBA::Exception.native2r($!)
|
136
|
+
end
|
137
|
+
else
|
138
|
+
@shutdown = true
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
## custom
|
143
|
+
@@vf_queue = (Class.new(Monitor) do
|
144
|
+
def initialize
|
145
|
+
@q_ = []
|
146
|
+
super
|
147
|
+
end
|
148
|
+
def push(vfklass)
|
149
|
+
synchronize do
|
150
|
+
@q_ << vfklass
|
151
|
+
end
|
152
|
+
end
|
153
|
+
def process_all(&block)
|
154
|
+
synchronize do
|
155
|
+
@q_.each { |vf| block.call(vf) }
|
156
|
+
@q_.clear
|
157
|
+
end
|
158
|
+
end
|
159
|
+
def empty?()
|
160
|
+
f = false
|
161
|
+
synchronize do
|
162
|
+
f = @q_.empty?
|
163
|
+
end
|
164
|
+
f
|
165
|
+
end
|
166
|
+
end).new
|
167
|
+
|
168
|
+
def self._check_value_factory(vfklass)
|
169
|
+
if @@cached_orb.nil?
|
170
|
+
@@vf_queue.push(vfklass)
|
171
|
+
else
|
172
|
+
vfklass._check_factory
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
# custom R2CORBA extension : IORMap
|
177
|
+
|
178
|
+
def ior_map
|
179
|
+
@iormap ||= R2CORBA::IORMap.new(self)
|
180
|
+
end
|
181
|
+
|
182
|
+
end # ORB
|
183
|
+
|
184
|
+
=begin
|
185
|
+
Signal trapping
|
186
|
+
=end
|
187
|
+
private
|
188
|
+
@@sigreg = {}
|
189
|
+
def CORBA.signal_numbers
|
190
|
+
( [1, # HUP
|
191
|
+
2, # INT
|
192
|
+
3, # QUIT
|
193
|
+
5, # TRAP
|
194
|
+
6, # ABRT
|
195
|
+
10, # USR1
|
196
|
+
12, # USR2
|
197
|
+
13, # SIGPIPE
|
198
|
+
14, # ALRM
|
199
|
+
15, # TERM
|
200
|
+
17, # CHLD
|
201
|
+
18, # CONT
|
202
|
+
23, # URG
|
203
|
+
30, # PWR
|
204
|
+
31 # SYS
|
205
|
+
]) & Signal.list.values
|
206
|
+
end
|
207
|
+
|
208
|
+
def CORBA.handled_signals
|
209
|
+
@@sigreg.clear
|
210
|
+
sigs = self.signal_numbers.collect do |signum|
|
211
|
+
sigcmd = Signal.trap(signum, 'DEFAULT')
|
212
|
+
Signal.trap(signum, sigcmd)
|
213
|
+
@@sigreg[signum] = sigcmd
|
214
|
+
if sigcmd.respond_to?(:call) or ['IGNORE','SIG_IGN','EXIT'].include?(sigcmd.to_s)
|
215
|
+
signum
|
216
|
+
else
|
217
|
+
nil
|
218
|
+
end
|
219
|
+
end.compact
|
220
|
+
sigs
|
221
|
+
end
|
222
|
+
|
223
|
+
def CORBA.handle_signal(signum)
|
224
|
+
if @@sigreg.has_key?(signum)
|
225
|
+
if @@sigreg[signum].respond_to?(:call)
|
226
|
+
if @@sigreg[signum].respond_to?(:parameters) && @@sigreg[signum].parameters.size>0
|
227
|
+
@@sigreg[signum].call(signum)
|
228
|
+
else
|
229
|
+
@@sigreg[signum].call
|
230
|
+
end
|
231
|
+
elsif @@sigreg[signum].to_s == 'EXIT'
|
232
|
+
Kernel.exit!(signum)
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end # CORBA
|
237
|
+
end # R2CORBA
|