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
@@ -0,0 +1,132 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# Author: Martin Corino
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
6
|
+
# included with this program.
|
7
|
+
#
|
8
|
+
# Copyright (c) Remedy IT Expertise BV
|
9
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
10
|
+
#--------------------------------------------------------------------
|
11
|
+
require 'optparse'
|
12
|
+
require 'lib/assert.rb'
|
13
|
+
include TestUtil::Assertions
|
14
|
+
|
15
|
+
OPTIONS = {
|
16
|
+
:use_implement => false,
|
17
|
+
:orb_debuglevel => 0,
|
18
|
+
:iorfile => 'file://server.ior'
|
19
|
+
}
|
20
|
+
|
21
|
+
ARGV.options do |opts|
|
22
|
+
script_name = File.basename($0)
|
23
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
24
|
+
|
25
|
+
opts.separator ""
|
26
|
+
|
27
|
+
opts.on("--k IORFILE",
|
28
|
+
"Set IOR.",
|
29
|
+
"Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
|
30
|
+
opts.on("--d LVL",
|
31
|
+
"Set ORBDebugLevel value.",
|
32
|
+
"Default: 0", Integer) { |v| OPTIONS[:orb_debuglevel]=v }
|
33
|
+
opts.on("--use-implement",
|
34
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
35
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
36
|
+
|
37
|
+
opts.separator ""
|
38
|
+
|
39
|
+
opts.on("-h", "--help",
|
40
|
+
"Show this help message.") { puts opts; exit }
|
41
|
+
|
42
|
+
opts.parse!
|
43
|
+
end
|
44
|
+
|
45
|
+
if OPTIONS[:use_implement]
|
46
|
+
require 'corba/poa.rb'
|
47
|
+
CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
48
|
+
else
|
49
|
+
require 'TestS.rb'
|
50
|
+
end
|
51
|
+
require 'corba/policies.rb'
|
52
|
+
|
53
|
+
class MyCallback < POA::Callback
|
54
|
+
def initialize(orb)
|
55
|
+
@orb = orb
|
56
|
+
end
|
57
|
+
|
58
|
+
def shutdown() # oneway
|
59
|
+
@orb.shutdown(false)
|
60
|
+
end
|
61
|
+
|
62
|
+
def callback_method()
|
63
|
+
if OPTIONS[:orb_debuglevel] > 0
|
64
|
+
puts 'Callback method called.'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
end #of servant Callback
|
69
|
+
|
70
|
+
if defined?(JRUBY_VERSION)
|
71
|
+
## JacORB needs explicit activation of this option
|
72
|
+
props = {
|
73
|
+
"org.omg.PortableInterceptor.ORBInitializerClass.bidir_init" =>
|
74
|
+
"org.jacorb.orb.giop.BiDirConnectionInitializer"
|
75
|
+
}
|
76
|
+
else
|
77
|
+
props = {}
|
78
|
+
end
|
79
|
+
|
80
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB', props)
|
81
|
+
|
82
|
+
begin
|
83
|
+
|
84
|
+
obj = orb.resolve_initial_references('RootPOA')
|
85
|
+
|
86
|
+
root_poa = PortableServer::POA._narrow(obj)
|
87
|
+
|
88
|
+
poa_man = root_poa.the_POAManager
|
89
|
+
|
90
|
+
policies = []
|
91
|
+
policies << orb.create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE,
|
92
|
+
CORBA::Any.to_any(BiDirPolicy::BOTH, BiDirPolicy::BidirectionalPolicyValue._tc))
|
93
|
+
|
94
|
+
puts 'policies created'
|
95
|
+
|
96
|
+
child_poa = root_poa.create_POA('childPOA', poa_man, policies)
|
97
|
+
|
98
|
+
puts 'child_poa created'
|
99
|
+
|
100
|
+
policies.each { |pol| pol.destroy() }
|
101
|
+
|
102
|
+
puts 'policies destroyed'
|
103
|
+
|
104
|
+
poa_man.activate
|
105
|
+
|
106
|
+
obj = orb.string_to_object(OPTIONS[:iorfile])
|
107
|
+
|
108
|
+
assert_not 'Object reference is nil.', CORBA::is_nil(obj)
|
109
|
+
|
110
|
+
simple_srv = Simple_Server._narrow(obj)
|
111
|
+
|
112
|
+
callback_i = MyCallback.new(orb)
|
113
|
+
|
114
|
+
callback_ref = callback_i._this()
|
115
|
+
|
116
|
+
# Send the calback object to the server
|
117
|
+
simple_srv.callback_object(callback_ref)
|
118
|
+
|
119
|
+
# A method to kickstart callbacks from the server
|
120
|
+
r = simple_srv.test_method(true)
|
121
|
+
|
122
|
+
assert "unexpected result = #{r}", r == 0
|
123
|
+
|
124
|
+
orb.run()
|
125
|
+
|
126
|
+
root_poa.destroy(1, 1)
|
127
|
+
|
128
|
+
ensure
|
129
|
+
|
130
|
+
orb.destroy()
|
131
|
+
|
132
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# Author: Martin Corino
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
6
|
+
# included with this program.
|
7
|
+
#
|
8
|
+
# Copyright (c) Remedy IT Expertise BV
|
9
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
10
|
+
#--------------------------------------------------------------------
|
11
|
+
|
12
|
+
OPTIONS = {
|
13
|
+
:debug_opt => '',
|
14
|
+
:use_implement => '--use-implement'
|
15
|
+
}
|
16
|
+
|
17
|
+
require 'optparse'
|
18
|
+
|
19
|
+
ARGV.options do |opts|
|
20
|
+
script_name = File.basename($0)
|
21
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
22
|
+
|
23
|
+
opts.separator ""
|
24
|
+
|
25
|
+
opts.on("-d",
|
26
|
+
"Run with debugging output.",
|
27
|
+
"Default: false") { OPTIONS[:debug_opt] = '--d 10' }
|
28
|
+
opts.on("--use-stubs",
|
29
|
+
"Use stubs generated by RIDL.",
|
30
|
+
"Default: false (uses embedded IDL)") { OPTIONS[:use_implement] = '' }
|
31
|
+
|
32
|
+
opts.separator ""
|
33
|
+
|
34
|
+
opts.on("-h", "--help",
|
35
|
+
"Show this help message.") { puts opts; exit }
|
36
|
+
|
37
|
+
opts.parse!
|
38
|
+
end
|
39
|
+
|
40
|
+
require 'lib/test.rb'
|
41
|
+
include TestUtil
|
42
|
+
|
43
|
+
ior_file = 'server.ior'
|
44
|
+
|
45
|
+
TestUtil.remove_file(ior_file)
|
46
|
+
|
47
|
+
srv = Test.new
|
48
|
+
|
49
|
+
exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
50
|
+
|
51
|
+
TestUtil.wait_for_file(ior_file, 400)
|
52
|
+
|
53
|
+
clt = Test.new
|
54
|
+
|
55
|
+
if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
56
|
+
srv.kill(100)
|
57
|
+
exit(255)
|
58
|
+
end
|
59
|
+
|
60
|
+
exrc = clt.wait(400)
|
61
|
+
|
62
|
+
if exrc ==0
|
63
|
+
srv.wait(400)
|
64
|
+
else
|
65
|
+
srv.wait_term(400)
|
66
|
+
end
|
67
|
+
|
68
|
+
exit(exrc)
|
@@ -0,0 +1 @@
|
|
1
|
+
IOR:000000000000001649444C3A53696D706C655F5365727665723A312E300000000000000100000000000000F4000102000000000B31302E342E302E3132300000DD72000000000027393333343738303132332F6368696C64504F412F00153C344D40243918243D071F1F2A4624281F0000000004000000030000002E0000000000000024323030313A3938323A613037323A313A643236373A653566663A666534393A3130333400DD720000000000030000002E0000000000000023323030313A3938323A613037323A313A333165393A3238393A323764333A343061610000DD7200000000000000000008000000004A4143000000000100000024000000000501000100000002000100010001000F00010109000000020501000100010100
|
@@ -0,0 +1,169 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
7
|
+
# included with this program.
|
8
|
+
#
|
9
|
+
# Copyright (c) Remedy IT Expertise BV
|
10
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
11
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
require 'optparse'
|
14
|
+
|
15
|
+
OPTIONS = {
|
16
|
+
:use_implement => false,
|
17
|
+
:orb_debuglevel => 0,
|
18
|
+
:iorfile => 'server.ior',
|
19
|
+
:iter_num => 10
|
20
|
+
}
|
21
|
+
|
22
|
+
ARGV.options do |opts|
|
23
|
+
script_name = File.basename($0)
|
24
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
25
|
+
|
26
|
+
opts.separator ""
|
27
|
+
|
28
|
+
opts.on("--o IORFILE",
|
29
|
+
"Set IOR filename.",
|
30
|
+
"Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
|
31
|
+
opts.on("--d LVL",
|
32
|
+
"Set ORBDebugLevel value.",
|
33
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
34
|
+
opts.on("--use-implement",
|
35
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
36
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
37
|
+
opts.on("--i ITERATIONS",
|
38
|
+
"Set number of iterations.",
|
39
|
+
"Default: 10", Integer) { |v| OPTIONS[:iter_num]=v }
|
40
|
+
|
41
|
+
opts.separator ""
|
42
|
+
|
43
|
+
opts.on("-h", "--help",
|
44
|
+
"Show this help message.") { puts opts; exit }
|
45
|
+
|
46
|
+
opts.parse!
|
47
|
+
end
|
48
|
+
|
49
|
+
if OPTIONS[:use_implement]
|
50
|
+
require 'corba/poa.rb'
|
51
|
+
CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
52
|
+
else
|
53
|
+
require 'TestS.rb'
|
54
|
+
end
|
55
|
+
require 'corba/policies.rb'
|
56
|
+
|
57
|
+
class Simple_Server_i < POA::Simple_Server
|
58
|
+
def initialize(orb, iter_num)
|
59
|
+
@orb = orb
|
60
|
+
@iter_num = iter_num
|
61
|
+
@flag = false
|
62
|
+
@callback = nil
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_method(do_callback)
|
66
|
+
if do_callback == true
|
67
|
+
@flag = true
|
68
|
+
end
|
69
|
+
0
|
70
|
+
end
|
71
|
+
|
72
|
+
def callback_object(cb)
|
73
|
+
@callback = cb
|
74
|
+
end
|
75
|
+
|
76
|
+
def shutdown()
|
77
|
+
@orb.shutdown()
|
78
|
+
end
|
79
|
+
|
80
|
+
def call_client()
|
81
|
+
if @flag
|
82
|
+
@iter_num.times do
|
83
|
+
@callback.callback_method()
|
84
|
+
end
|
85
|
+
|
86
|
+
@callback.shutdown()
|
87
|
+
@flag = false
|
88
|
+
|
89
|
+
return 1
|
90
|
+
else
|
91
|
+
sleep(0.05) # don't hog the CPU
|
92
|
+
end
|
93
|
+
return 0
|
94
|
+
end
|
95
|
+
|
96
|
+
end #of servant Simple_Server_i
|
97
|
+
|
98
|
+
if defined?(JRUBY_VERSION)
|
99
|
+
## JacORB needs explicit activation of this option
|
100
|
+
props = {
|
101
|
+
"org.omg.PortableInterceptor.ORBInitializerClass.bidir_init" =>
|
102
|
+
"org.jacorb.orb.giop.BiDirConnectionInitializer"
|
103
|
+
}
|
104
|
+
else
|
105
|
+
props = {}
|
106
|
+
end
|
107
|
+
|
108
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB', props)
|
109
|
+
|
110
|
+
obj = orb.resolve_initial_references('RootPOA')
|
111
|
+
|
112
|
+
root_poa = PortableServer::POA._narrow(obj)
|
113
|
+
|
114
|
+
poa_man = root_poa.the_POAManager
|
115
|
+
|
116
|
+
policies = []
|
117
|
+
policies << orb.create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE,
|
118
|
+
CORBA::Any.to_any(BiDirPolicy::BOTH, BiDirPolicy::BidirectionalPolicyValue._tc))
|
119
|
+
|
120
|
+
puts 'policies created'
|
121
|
+
|
122
|
+
child_poa = root_poa.create_POA('childPOA', poa_man, policies)
|
123
|
+
|
124
|
+
puts 'child_poa created'
|
125
|
+
|
126
|
+
policies.each { |pol| pol.destroy() }
|
127
|
+
|
128
|
+
puts 'policies destroyed'
|
129
|
+
|
130
|
+
poa_man.activate
|
131
|
+
|
132
|
+
simple_srv = Simple_Server_i.new(orb, OPTIONS[:iter_num])
|
133
|
+
|
134
|
+
id = child_poa.activate_object(simple_srv)
|
135
|
+
|
136
|
+
obj = child_poa.id_to_reference(id)
|
137
|
+
|
138
|
+
ior = orb.object_to_string(obj)
|
139
|
+
|
140
|
+
puts "Activated as <#{ior}>"
|
141
|
+
|
142
|
+
open(OPTIONS[:iorfile], 'w') { |io|
|
143
|
+
io.write ior
|
144
|
+
}
|
145
|
+
|
146
|
+
Signal.trap('INT') do
|
147
|
+
puts "SIGINT - shutting down ORB..."
|
148
|
+
orb.shutdown()
|
149
|
+
end
|
150
|
+
|
151
|
+
if Signal.list.has_key?('USR2')
|
152
|
+
Signal.trap('USR2', 'EXIT')
|
153
|
+
end
|
154
|
+
|
155
|
+
retval = 0
|
156
|
+
while retval == 0
|
157
|
+
pending = orb.work_pending()
|
158
|
+
|
159
|
+
if pending
|
160
|
+
orb.perform_work()
|
161
|
+
end
|
162
|
+
|
163
|
+
retval = simple_srv.call_client()
|
164
|
+
end
|
165
|
+
|
166
|
+
puts 'event loop finished'
|
167
|
+
|
168
|
+
root_poa.destroy(true, true)
|
169
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/*--------------------------------------------------------------------
|
2
|
+
* Author: Martin Corino
|
3
|
+
*
|
4
|
+
* This program is free software; you can redistribute it and/or
|
5
|
+
* modify it under the terms of the R2CORBA LICENSE which is
|
6
|
+
* included with this program.
|
7
|
+
*
|
8
|
+
* Copyright (c) Remedy IT Expertise BV
|
9
|
+
* Chamber of commerce Rotterdam nr.276339, The Netherlands
|
10
|
+
*--------------------------------------------------------------------*/
|
11
|
+
|
12
|
+
/// Put the interfaces in a module, to avoid global namespace pollution
|
13
|
+
module Test
|
14
|
+
{
|
15
|
+
/// A very simple interface
|
16
|
+
interface Hello
|
17
|
+
{
|
18
|
+
/// Return a simple string
|
19
|
+
string get_string ();
|
20
|
+
|
21
|
+
/// A method to shutdown the ORB
|
22
|
+
/**
|
23
|
+
* This method is used to simplify the test shutdown process
|
24
|
+
*/
|
25
|
+
oneway void shutdown ();
|
26
|
+
};
|
27
|
+
};
|
@@ -0,0 +1,121 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
7
|
+
# included with this program.
|
8
|
+
#
|
9
|
+
# Copyright (c) Remedy IT Expertise BV
|
10
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
11
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
require 'optparse'
|
14
|
+
require 'lib/assert.rb'
|
15
|
+
include TestUtil::Assertions
|
16
|
+
|
17
|
+
OPTIONS = {
|
18
|
+
:use_implement => false,
|
19
|
+
:orb_debuglevel => 0,
|
20
|
+
:iorfile => 'file://ins.ior'
|
21
|
+
}
|
22
|
+
|
23
|
+
ARGV.options do |opts|
|
24
|
+
script_name = File.basename($0)
|
25
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
26
|
+
|
27
|
+
opts.separator ""
|
28
|
+
|
29
|
+
opts.on("--k IORFILE",
|
30
|
+
"Set IOR.",
|
31
|
+
"Default: 'file://ins.ior'") { |v| OPTIONS[:iorfile]=v }
|
32
|
+
opts.on("--d LVL",
|
33
|
+
"Set ORBDebugLevel value.",
|
34
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
35
|
+
opts.on("--use-implement",
|
36
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
37
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
38
|
+
|
39
|
+
opts.separator ""
|
40
|
+
|
41
|
+
opts.on("-h", "--help",
|
42
|
+
"Show this help message.") { puts opts; exit }
|
43
|
+
|
44
|
+
opts.parse!
|
45
|
+
end
|
46
|
+
|
47
|
+
if OPTIONS[:use_implement]
|
48
|
+
require 'corba'
|
49
|
+
CORBA.implement('Test.idl', OPTIONS)
|
50
|
+
else
|
51
|
+
require 'TestC.rb'
|
52
|
+
end
|
53
|
+
require 'corba/naming'
|
54
|
+
|
55
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
56
|
+
|
57
|
+
begin
|
58
|
+
|
59
|
+
# resolve NamingContext
|
60
|
+
obj = orb.string_to_object(OPTIONS[:iorfile])
|
61
|
+
|
62
|
+
nc = CosNaming::NamingContextExt._narrow(obj)
|
63
|
+
|
64
|
+
assert_not "ERROR: INS IOR resolved to nil object!", CORBA::is_nil(nc)
|
65
|
+
|
66
|
+
# list registered items in context
|
67
|
+
binding_list, binding_iterator = nc.list(1)
|
68
|
+
|
69
|
+
assert 'ERROR: INS list() does not function', (!CORBA::is_nil(binding_iterator) && binding_list.size==1) &&
|
70
|
+
binding_list.first.binding_type == CosNaming::Nobject
|
71
|
+
|
72
|
+
n = binding_list.first.binding_name.first
|
73
|
+
puts "first binding: id=#{n.r_id}, kind=#{n.kind}"
|
74
|
+
|
75
|
+
has_one, binding = binding_iterator.next_one()
|
76
|
+
|
77
|
+
assert 'ERROR: INS BindingIterator#next_one() does not function',
|
78
|
+
(has_one && binding) &&
|
79
|
+
binding.binding_type == CosNaming::Nobject
|
80
|
+
|
81
|
+
n = binding.binding_name.first
|
82
|
+
puts "second binding: id=#{n.r_id}, kind=#{n.kind}"
|
83
|
+
|
84
|
+
has_list, binding_list = binding_iterator.next_n(3)
|
85
|
+
|
86
|
+
assert 'ERROR: INS BindingIterator#next_n() does not function',
|
87
|
+
(has_list && binding_list.size==3) &&
|
88
|
+
binding_list.first.binding_type == CosNaming::Nobject &&
|
89
|
+
binding_list.last.binding_type == CosNaming::Nobject
|
90
|
+
|
91
|
+
counts = ['third', 'fourth', 'fifth']
|
92
|
+
binding_list.each do |binding|
|
93
|
+
n = binding.binding_name.first
|
94
|
+
puts "#{counts.shift} binding: id=#{n.r_id}, kind=#{n.kind}"
|
95
|
+
end
|
96
|
+
|
97
|
+
has_one, binding = binding_iterator.next_one()
|
98
|
+
|
99
|
+
assert_not 'ERROR: INS BindingIterator#next_one() does not function (2)', has_one
|
100
|
+
|
101
|
+
binding_iterator.destroy()
|
102
|
+
|
103
|
+
# retrieve object reference for servant from Naming service
|
104
|
+
name = binding_list.last.binding_name
|
105
|
+
|
106
|
+
obj = nc.resolve(name)
|
107
|
+
|
108
|
+
# narrow object ref and call
|
109
|
+
hello_obj = Test::Hello._narrow(obj)
|
110
|
+
|
111
|
+
the_string = hello_obj.get_string()
|
112
|
+
|
113
|
+
puts "string returned <#{the_string}>"
|
114
|
+
|
115
|
+
hello_obj.shutdown()
|
116
|
+
|
117
|
+
ensure
|
118
|
+
|
119
|
+
orb.destroy()
|
120
|
+
|
121
|
+
end
|