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