Author: adc Date: Mon Mar 28 07:07:05 2005 New Revision: 159240 URL: http://svn.apache.org/viewcvs?view=rev&rev=159240 Log: CORBA IDL
Added: geronimo/trunk/specs/corba/ geronimo/trunk/specs/corba/LICENSE.txt geronimo/trunk/specs/corba/NOTICE.txt geronimo/trunk/specs/corba/build.xml geronimo/trunk/specs/corba/maven.xml geronimo/trunk/specs/corba/project.properties geronimo/trunk/specs/corba/project.xml geronimo/trunk/specs/corba/src/ geronimo/trunk/specs/corba/src/idl/ geronimo/trunk/specs/corba/src/idl/CSI.idl geronimo/trunk/specs/corba/src/idl/CSIIOP.idl geronimo/trunk/specs/corba/src/idl/CosNaming.idl geronimo/trunk/specs/corba/src/idl/CosTSInteroperation.idl geronimo/trunk/specs/corba/src/idl/CosTSPortability.idl geronimo/trunk/specs/corba/src/idl/CosTransactions.idl geronimo/trunk/specs/corba/src/idl/GIOP.idl geronimo/trunk/specs/corba/src/idl/GSSUP.idl geronimo/trunk/specs/corba/src/idl/IIOP.idl geronimo/trunk/specs/corba/src/idl/IOP.idl geronimo/trunk/specs/corba/src/idl/Readme.txt geronimo/trunk/specs/corba/src/idl/SSLIOP.idl geronimo/trunk/specs/corba/src/idl/Security.idl geronimo/trunk/specs/corba/src/idl/TimeBase.idl geronimo/trunk/specs/corba/src/idl/orb.idl geronimo/trunk/specs/corba/src/idl/org-apache-geronimo-interop-rmi-iiop.idl Added: geronimo/trunk/specs/corba/LICENSE.txt URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/LICENSE.txt?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/LICENSE.txt (added) +++ geronimo/trunk/specs/corba/LICENSE.txt Mon Mar 28 07:07:05 2005 @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + Added: geronimo/trunk/specs/corba/NOTICE.txt URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/NOTICE.txt?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/NOTICE.txt (added) +++ geronimo/trunk/specs/corba/NOTICE.txt Mon Mar 28 07:07:05 2005 @@ -0,0 +1,3 @@ +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + Added: geronimo/trunk/specs/corba/build.xml URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/build.xml?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/build.xml (added) +++ geronimo/trunk/specs/corba/build.xml Mon Mar 28 07:07:05 2005 @@ -0,0 +1,65 @@ +<project name="IDLGen" default="idlj"> + + <target name="init"> + <mkdir dir="${maven.build.src}"/> + </target> + + <target name="checkidlts"> + <uptodate property="idl.build.not.required" + srcfile="${maven.src.dir}/idl/${idl.file}.idl" + targetfile="${maven.build.src}/${idl.file}.ts"/> + </target> + + <target name="idlj" depends="init, checkidlts" unless="idl.build.not.required"> + <echo message="blah" file="${maven.build.src}/${idl.file}.ts"/> + <echo message="Interop :: idlj :: ${idl.file}"/> + <exec dir="${maven.basedir}" executable="idlj"> + <arg value="-td"/> + <arg file="${maven.build.src}"/> + <arg value="-i"/> + <arg file="${java.home}/lib"/> + <arg value="-i"/> + <arg file="${maven.src.dir}/idl"/> + <arg value="${idlj.verbose}"/> + <arg value="-pkgPrefix"/> + <arg value="IOP"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="IIOP"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="GIOP"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="CosNaming"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="CSI"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="GSSUP"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="CSIIOP"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="TimeBase"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="SecurityService"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="CosTransactions"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="CosTSInteroperation"/> + <arg value="${pkg.prefix}"/> + <arg value="-pkgPrefix"/> + <arg value="CosTSPortability"/> + <arg value="${pkg.prefix}"/> + <arg file="${maven.src.dir}/idl/${idl.file}.idl"/> + </exec> + </target> + + +</project> Added: geronimo/trunk/specs/corba/maven.xml URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/maven.xml?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/maven.xml (added) +++ geronimo/trunk/specs/corba/maven.xml Mon Mar 28 07:07:05 2005 @@ -0,0 +1,285 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + + Copyright 2005 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + + +<!-- $Rev: 46019 $ $Date: 2004-09-14 05:56:06 -0400 (Tue, 14 Sep 2004) $ --> + +<project default="default" + xmlns:j="jelly:core" + xmlns:ant="jelly:ant" + > + + <!-- <property name="idlj.verbose" value="-verbose"/> --> + <property name="idlj.verbose" value="-verbose"/> + <property name="pkg.prefix" value="org.omg"/> + + <!-- + # + # Be carefull about changing the package prefix. When generating the java + # files for the .IDL files, they will normally go into a package that + # corresponds with the module. I originally had o.a.g.i.org.omg as the + # prefix, but the idlj tool would generate the GIOP in a wrong package: + # o.a.g.i.org.omg.o.a.g.i for some strange reason. + --> + + <!-- + # Todo: + # + # 1. It would be nice to improve the iop, giop, iiop, cosnaming targets as their + # build goals are almost the same. Maybe we could figure out how to use a for + # script statement.... + # + --> + + <goal name="interop:idlj:iop"> + <ant:echo message="Interop :: idlj :: IOP"> + </ant:echo> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="IOP"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:giop"> + <ant:echo message="Interop :: idlj :: GIOP"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="GIOP"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:iiop"> + <ant:echo message="Interop :: idlj :: IIOP"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="IIOP"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:cosnaming"> + <ant:echo message="Interop :: idlj :: CosNaming"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="CosNaming"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:csiv2"> + <attainGoal name="interop:idlj:csiv2:csi"/> + <attainGoal name="interop:idlj:csiv2:gssup"/> + <attainGoal name="interop:idlj:csiv2:csiiop"/> + </goal> + + <goal name="interop:idlj:csiv2:csi"> + <ant:echo message="Interop :: idlj :: CSIv2 :: CSI"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="CSI"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:csiv2:gssup"> + <ant:echo message="Interop :: idlj :: CSIv2 :: GSSUP"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="GSSUP"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:csiv2:csiiop"> + <ant:echo message="Interop :: idlj :: CSIv2 :: CSIIIOP"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="CSIIOP"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:security-service"> + <attainGoal name="interop:idlj:security-service:timebase"/> + <attainGoal name="interop:idlj:security-service:securityservice"/> + <attainGoal name="interop:idlj:security-service:ssliop"/> + </goal> + + <goal name="interop:idlj:security-service:timebase"> + <ant:echo message="Interop :: idlj :: SecurityService :: TimeBase"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="TimeBase"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:security-service:securityservice"> + <ant:echo message="Interop :: idlj :: SecurityService :: SecurityService"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="Security"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:security-service:ssliop"> + <ant:echo message="Interop :: idlj :: SecurityService :: SSLIOP"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="SSLIOP"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:costxn:costransactions"> + <ant:echo message="Interop :: idlj :: CosTx :: CosTransactions"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="CosTransactions"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:costxn:costsinterop"> + <ant:echo message="Interop :: idlj :: CosTx :: CosTSInteroperation"/> + <ant:ant antfile="build.xml"> + <ant:property name="maven.build.src" value="${maven.build.src}"/> + <ant:property name="maven.src.dir" value="${maven.src.dir}"/> + <ant:property name="maven.basedir" value="${basedir}"/> + <ant:property name="pkg.prefix" value="${pkg.prefix}"/> + <ant:property name="idlj.verbose" value="${idlj.verbose}"/> + <ant:property name="idl.file" value="CosTransactions"/> + </ant:ant> + </goal> + + <goal name="interop:idlj:costxn"> + <attainGoal name="interop:idlj:costxn:costransactions"/> + <attainGoal name="interop:idlj:costxn:costsinterop"/> + </goal> + + <goal name="interop:java:compile"> + <ant:echo message="Interop :: Compile"/> + <ant:javac srcdir="${maven.build.src}" destdir="${maven.build.dest}" + classpath="${maven.build.dest};${maven.build.src}"/> + </goal> + + <goal name="interop:idlj"> + <attainGoal name="interop:idlj:iop"/> + <attainGoal name="interop:idlj:giop"/> + <attainGoal name="interop:idlj:iiop"/> + <attainGoal name="interop:idlj:cosnaming"/> + <attainGoal name="interop:idlj:csiv2"/> + <attainGoal name="interop:idlj:security-service"/> + <attainGoal name="interop:idlj:costxn"/> + </goal> + + <goal name="interop:stub:generate-compile"> + <ant:exec dir="${maven.basedir}" executable="java"> + <ant:arg value="-cp"/> + <ant:arg path="${maven.build.dest};${maven.repo.local}\geronimo-spec\jars\geronimo-spec-ejb-2.1-rc3.jar;${maven.repo.local}\commons-logging\jars\commons-logging-1.0.4.jar"/> + <ant:arg value="org.apache.geronimo.interop.rmi.iiop.compiler.StubCompiler"/> + <ant:arg value="-g"/> + <ant:arg value="-c"/> + <ant:arg value="-s"/> + <ant:arg value="-v"/> + <ant:arg value="-o"/> + <ant:arg value="-r"/> + <ant:arg path="${maven.repo.local}"/> + <ant:arg value="-gs"/> + <ant:arg path="target/stubs"/> + <ant:arg value="-gc"/> + <ant:arg path="target/classes"/> + <ant:arg value="IDL:org.apache.geronimo.interop.CosNaming.NamingContext"/> + </ant:exec> + </goal> + + <goal name="interop:skel:generate-compile"> + <ant:exec dir="${maven.basedir}" executable="java"> + <ant:arg value="-cp"/> + <ant:arg path="${maven.build.dest};${maven.repo.local}\geronimo-spec\jars\geronimo-spec-ejb-2.1-rc3.jar;${maven.repo.local}\commons-logging\jars\commons-logging-1.0.4.jar"/> + <ant:arg value="org.apache.geronimo.interop.rmi.iiop.compiler.SkelCompiler"/> + <ant:arg value="-g"/> + <ant:arg value="-c"/> + <ant:arg value="-s"/> + <ant:arg value="-v"/> + <ant:arg value="-o"/> + <ant:arg value="-r"/> + <ant:arg path="${maven.repo.local}"/> + <ant:arg value="-gs"/> + <ant:arg path="target/skels"/> + <ant:arg value="-gc"/> + <ant:arg path="target/classes"/> + <ant:arg value="IDL:org.apache.geronimo.interop.CosNaming.NamingContext"/> + </ant:exec> + </goal> + + <preGoal name="java:compile"> + <attainGoal name="interop:idlj"/> + <attainGoal name="interop:java:compile"/> + </preGoal> + + <postGoal name="java:compile"> + <!-- + <attainGoal name="interop:stub:generate-compile"/> + <attainGoal name="interop:skel:generate-compile"/> + --> + </postGoal> + + <!-- + <goal name="showprops"> + <ant:echoproperties/> + </goal> + --> + +</project> Added: geronimo/trunk/specs/corba/project.properties URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/project.properties?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/project.properties (added) +++ geronimo/trunk/specs/corba/project.properties Mon Mar 28 07:07:05 2005 @@ -0,0 +1,3 @@ +## +## $Rev: 47137 $ $Date: 2004-09-24 00:04:29 -0700 (Fri, 24 Sep 2004) $ +## Added: geronimo/trunk/specs/corba/project.xml URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/project.xml?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/project.xml (added) +++ geronimo/trunk/specs/corba/project.xml Mon Mar 28 07:07:05 2005 @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + + Copyright 2005 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14 Sep 2004) $ --> + +<project> + <pomVersion>3</pomVersion> + <extend>../../etc/project.xml</extend> + + <name>Geronimo :: CORBA Spec</name> + <groupId>geronimo-spec</groupId> + <id>geronimo-spec-corba</id> + <shortDescription>Geronimo CORBA Spec</shortDescription> + <description>Geronimo CORBA Spec</description> + <siteDirectory>/www/geronimo.apache.org/modules/interop</siteDirectory> + <distributionDirectory>/www/incubator.apache.org/projects/geronimo/builds/interop</distributionDirectory> + + <package>org.omg</package> + + <currentVersion>${geronimo_spec_corba_version}</currentVersion> + + <!-- ============ --> + <!-- Dependencies --> + <!-- ============ --> + + <dependencies> + </dependencies> + +</project> Added: geronimo/trunk/specs/corba/src/idl/CSI.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/CSI.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/CSI.idl (added) +++ geronimo/trunk/specs/corba/src/idl/CSI.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,200 @@ +#ifndef _CSI_IDL_ +#define _CSI_IDL_ + +#pragma prefix "omg.org" + +module CSI { + + // The OMG VMCID; same value as CORBA::OMGVMCID. Do not change ever. + const unsigned long OMGVMCID = 0x4F4D0; + + // An X509CertificateChain contains an ASN.1 BER encoded SEQUENCE + // [1..MAX] OF X.509 certificates encapsulated in a sequence of octets. The + // subjectÂs certificate shall come first in the list. Each following + // certificate shall directly certify the one preceding it. The ASN.1 + // representation of Certificate is as defined in [IETF RFC 2459]. + + typedef sequence <octet> X509CertificateChain; + + // an X.501 type name or Distinguished Name encapsulated in a sequence of + // octets containing the ASN.1 encoding. + + typedef sequence <octet> X501DistinguishedName; + + // UTF-8 Encoding of String + + typedef sequence <octet> UTF8String; + + // ASN.1 Encoding of an OBJECT IDENTIFIER + + typedef sequence <octet> OID; + + typedef sequence <OID> OIDList; + + // A sequence of octets containing a GSStoken. Initial context tokens are + // ASN.1 encoded as defined in [IETF RFC 2743] Section 3.1, + // "Mechanism-Independent token Format", pp. 81-82. Initial context tokens + // contain an ASN.1 tag followed by a token length, a mechanism identifier, + // and a mechanism-specific token (i.e. a GSSUP::InitialContextToken). The + // encoding of all other GSS tokens (e.g. error tokens and final context + // tokens) is mechanism dependent. + + typedef sequence <octet> GSSToken; + + // An encoding of a GSS Mechanism-Independent Exported Name Object as + // defined in [IETF RFC 2743] Section 3.2, "GSS Mechanism-Independent + // Exported Name Object Format," p. 84. + + typedef sequence <octet> GSS_NT_ExportedName; + + typedef sequence <GSS_NT_ExportedName> GSS_NT_ExportedNameList; + + // The MsgType enumeration defines the complete set of service context + // message types used by the CSI context management protocols, including + // those message types pertaining only to the stateful application of the + // protocols (to insure proper alignment of the identifiers between + // stateless and stateful implementations). Specifically, the + // MTMessageInContext is not sent by stateless clients (although it may + // be received by stateless targets). + + typedef short MsgType; + + const MsgType MTEstablishContext = 0; + const MsgType MTCompleteEstablishContext = 1; + const MsgType MTContextError = 4; + const MsgType MTMessageInContext = 5; + + // The ContextId type is used carry session identifiers. A stateless + // application of the service context protocol is indicated by a session + // identifier value of 0. + + typedef unsigned long long ContextId; + + // The AuthorizationElementType defines the contents and encoding of + // the_element field of the AuthorizationElement. + // The high order 20-bits of each AuthorizationElementType constant + // shall contain the Vendor Minor Codeset ID (VMCID) of the + // organization that defined the element type. The low order 12 bits + // shall contain the organization-scoped element type identifier. The + // high-order 20 bits of all element types defined by the OMG shall + // contain the VMCID allocated to the OMG (that is, 0x4F4D0). + + typedef unsigned long AuthorizationElementType; + + // An AuthorizationElementType of X509AttributeCertChain indicates that + // the_element field of the AuthorizationElement contains an ASN.1 BER + // SEQUENCE composed of an (X.509) AttributeCertificate followed by a + // SEQUENCE OF (X.509) Certificate. The two-part SEQUENCE is encapsulated + // in an octet stream. The chain of identity certificates is provided + // to certify the attribute certificate. Each certificate in the chain + // shall directly certify the one preceding it. The first certificate + // in the chain shall certify the attribute certificate. The ASN.1 + // representation of (X.509) Certificate is as defined in [IETF RFC 2459]. + // The ASN.1 representation of (X.509) AtributeCertificate is as defined + // in [IETF ID PKIXAC]. + + const AuthorizationElementType X509AttributeCertChain = OMGVMCID | 1; + + typedef sequence <octet> AuthorizationElementContents; + + // The AuthorizationElement contains one element of an authorization token. + // Each element of an authorization token is logically a PAC. + + struct AuthorizationElement { + AuthorizationElementType the_type; + AuthorizationElementContents the_element; + }; + + // The AuthorizationToken is made up of a sequence of + // AuthorizationElements + + typedef sequence <AuthorizationElement> AuthorizationToken; + + typedef unsigned long IdentityTokenType; + + // Additional standard identity token types shall only be defined by the + // OMG. All IdentityTokenType constants shall be a power of 2. + + const IdentityTokenType ITTAbsent = 0; + const IdentityTokenType ITTAnonymous = 1; + const IdentityTokenType ITTPrincipalName = 2; + const IdentityTokenType ITTX509CertChain = 4; + const IdentityTokenType ITTDistinguishedName = 8; + + typedef sequence <octet> IdentityExtension; + + union IdentityToken switch ( IdentityTokenType ) { + case ITTAbsent: boolean absent; + case ITTAnonymous: boolean anonymous; + case ITTPrincipalName: GSS_NT_ExportedName principal_name; + case ITTX509CertChain: X509CertificateChain certificate_chain; + case ITTDistinguishedName: X501DistinguishedName dn; + default: IdentityExtension id; + }; + + struct EstablishContext { + ContextId client_context_id; + AuthorizationToken authorization_token; + IdentityToken identity_token; + GSSToken client_authentication_token; + }; + + struct CompleteEstablishContext { + ContextId client_context_id; + boolean context_stateful; + GSSToken final_context_token; + }; + + struct ContextError { + ContextId client_context_id; + long major_status; + long minor_status; + GSSToken error_token; + }; + + // Not sent by stateless clients. If received by a stateless server, a + // ContextError message should be returned, indicating the session does + // not exist. + + struct MessageInContext { + ContextId client_context_id; + boolean discard_context; + }; + + union SASContextBody switch ( MsgType ) { + case MTEstablishContext: EstablishContext establish_msg; + case MTCompleteEstablishContext: CompleteEstablishContext complete_msg; + case MTContextError: ContextError error_msg; + case MTMessageInContext: MessageInContext in_context_msg; + }; + + // The following type represents the string representation of an ASN.1 + // OBJECT IDENTIFIER (OID). OIDs are represented by the string "oid:" + // followed by the integer base 10 representation of the OID separated + // by dots. For example, the OID corresponding to the OMG is represented + // as: "oid:2.23.130" + + typedef string StringOID; + + // The GSS Object Identifier for the KRB5 mechanism is: + // { iso(1) member-body(2) United States(840) mit(113554) infosys(1) + // gssapi(2) krb5(2) } + + const StringOID KRB5MechOID = "oid:1.2.840.113554.1.2.2"; + + // The GSS Object Identifier for name objects of the Mechanism-independent + // Exported Name Object type is: + // { iso(1) org(3) dod(6) internet(1) security(5) nametypes(6) + // gss-api-exported-name(4) } + + const StringOID GSS_NT_Export_Name_OID = "oid:1.3.6.1.5.6.4"; + + // The GSS Object Identifier for the scoped-username name form is: + // { iso-itu-t (2) international-organization (23) omg (130) security (1) + // naming (2) scoped-username(1) } + + const StringOID GSS_NT_Scoped_Username_OID = "oid:2.23.130.1.2.1"; + +}; // CSI + +#endif Added: geronimo/trunk/specs/corba/src/idl/CSIIOP.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/CSIIOP.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/CSIIOP.idl (added) +++ geronimo/trunk/specs/corba/src/idl/CSIIOP.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,134 @@ +#ifndef _CSIIOP_IDL_ +#define _CSIIOP_IDL_ +#include <IOP.idl> +#include <CSI.idl> + +#pragma prefix "omg.org" + +module CSIIOP { + + const IOP::ComponentId TAG_NULL_TAG = 34; + const IOP::ComponentId TAG_CSI_SEC_MECH_LIST = 33; + + // Association options + + typedef unsigned short AssociationOptions; + + const AssociationOptions NoProtection = 1; + const AssociationOptions Integrity = 2; + const AssociationOptions Confidentiality = 4; + const AssociationOptions DetectReplay = 8; + const AssociationOptions DetectMisordering = 16; + const AssociationOptions EstablishTrustInTarget = 32; + const AssociationOptions EstablishTrustInClient = 64; + const AssociationOptions NoDelegation = 128; + const AssociationOptions SimpleDelegation = 256; + const AssociationOptions CompositeDelegation = 512; + const AssociationOptions IdentityAssertion = 1024; + const AssociationOptions DelegationByClient = 2048; + + // The high order 20-bits of each ServiceConfigurationSyntax constant + // shall contain the Vendor Minor Codeset ID (VMCID) of the + // organization that defined the syntax. The low order 12 bits shall + // contain the organization-scoped syntax identifier. The high-order 20 + // bits of all syntaxes defined by the OMG shall contain the VMCID + // allocated to the OMG (that is, 0x4F4D0). + + typedef unsigned long ServiceConfigurationSyntax; + + const ServiceConfigurationSyntax SCS_GeneralNames = CSI::OMGVMCID | 0; + const ServiceConfigurationSyntax SCS_GSSExportedName = CSI::OMGVMCID | 1; + + typedef sequence <octet> ServiceSpecificName; + + // The name field of the ServiceConfiguration structure identifies a + // privilege authority in the format identified in the syntax field. If the + // syntax is SCS_GeneralNames, the name field contains an ASN.1 (BER) + // SEQUENCE [1..MAX] OF GeneralName, as defined by the type GeneralNames in + // [IETF RFC 2459]. If the syntax is SCS_GSSExportedName, the name field + // contains a GSS exported name encoded according to the rules in + // [IETF RFC 2743] Section 3.2, "Mechanism-Independent Exported Name + // Object Format," p. 84. + + struct ServiceConfiguration { + ServiceConfigurationSyntax syntax; + ServiceSpecificName name; + }; + + typedef sequence <ServiceConfiguration> ServiceConfigurationList; + + // The body of the TAG_NULL_TAG component is a sequence of octets of + // length 0. + // type used to define AS layer functionality within a compound mechanism + // definition + + struct AS_ContextSec { + AssociationOptions target_supports; + AssociationOptions target_requires; + CSI::OID client_authentication_mech; + CSI::GSS_NT_ExportedName target_name; + }; + + // type used to define SAS layer functionality within a compound mechanism + // definition + + struct SAS_ContextSec { + AssociationOptions target_supports; + AssociationOptions target_requires; + ServiceConfigurationList privilege_authorities; + CSI::OIDList supported_naming_mechanisms; + CSI::IdentityTokenType supported_identity_types; + }; + + // type used in the body of a TAG_CSI_SEC_MECH_LIST component to + // describe a compound mechanism + + struct CompoundSecMech { + AssociationOptions target_requires; + IOP::TaggedComponent transport_mech; + AS_ContextSec as_context_mech; + SAS_ContextSec sas_context_mech; + }; + + typedef sequence <CompoundSecMech> CompoundSecMechanisms; + + // type corresponding to the body of a TAG_CSI_SEC_MECH_LIST + // component + + struct CompoundSecMechList { + boolean stateful; + CompoundSecMechanisms mechanism_list; + }; + + struct TransportAddress { + string host_name; + unsigned short port; + }; + + typedef sequence <TransportAddress> TransportAddressList; + + // Tagged component for configuring SECIOP as a CSIv2 transport mechanism + + const IOP::ComponentId TAG_SECIOP_SEC_TRANS = 35; + + struct SECIOP_SEC_TRANS { + AssociationOptions target_supports; + AssociationOptions target_requires; + CSI::OID mech_oid; + CSI::GSS_NT_ExportedName target_name; + TransportAddressList addresses; + }; + + // tagged component for configuring TLS/SSL as a CSIv2 transport mechanism + + const IOP::ComponentId TAG_TLS_SEC_TRANS = 36; + + struct TLS_SEC_TRANS { + AssociationOptions target_supports; + AssociationOptions target_requires; + TransportAddressList addresses; + }; + +}; //CSIIOP + +#endif Added: geronimo/trunk/specs/corba/src/idl/CosNaming.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/CosNaming.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/CosNaming.idl (added) +++ geronimo/trunk/specs/corba/src/idl/CosNaming.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,456 @@ +// +// CosNaming.idl - Naming service interface +// +#pragma prefix "omg.org" + +/** + * The CORBA COS Naming Service provides the ability to bind a name + * to an object relative to a naming context. A naming context is an + * object that contains a set of name bindings in which each name is unique. + * To resolve a name is to determine the object associated with the name in + * a given context. <p> + * + * See http://www.omg.org/corba/sectrans.htm#nam for the complete CORBA + * COS Naming Specification. <p> + */ +module CosNaming +{ + typedef string Istring; + + /** + * Many of the operations defined on a naming context take names as + * parameters. Names have structure. A name is an ordered sequence of + * components. <p> + * + * A name with a single component is called a simple name; a name with + * multiple components is called a compound name. Each component except + * the last is used to name a context; the last component denotes the + * bound object. <p> + * + * A name component consists of two attributes: the identifier + * attribute and the kind attribute. Both the identifier attribute and the + * kind attribute are represented as IDL strings. The kind attribute adds + * descriptive power to names in a syntax-independent way. Examples of the + * value of the kind attribute include c_source, object_code, executable, + * postscript, or " ". + */ + struct NameComponent + { + Istring id; + Istring kind; + }; + + // A name is a sequence of name components. + typedef sequence <NameComponent> Name; + + /** + * Specifies whether the given binding is for a object (that is not a + * naming context) or for a naming context. + */ + enum BindingType + { + nobject, // name is bound to an object + ncontext // name is bound to a naming context + }; + + /** + * A name-to-object association is called a Binding. + */ + struct Binding + { + Name binding_name; // name + BindingType binding_type; // whether name is bound to an object + // or a naming context + }; + + typedef sequence <Binding> BindingList; + + /** + * The BindingIterator interface allows a client to iterate through + * the bindings using the next_one or next_n operations. + * + * The bindings iterator is obtained by using the <tt>list</tt> + * method on the <tt>NamingContext</tt>. + * @see org.omg.CosNaming.NamingContext#list + */ + interface BindingIterator + { + /** + * This operation returns the next binding. If there are no more + * bindings, false is returned. + * + * @param b the returned binding + */ + boolean next_one(out Binding b); + + /** + * This operation returns at most the requested number of bindings. + * + * @param how_many the maximum number of bindings tro return <p> + * + * @param bl the returned bindings + */ + boolean next_n(in unsigned long how_many, + out BindingList bl); + + // Destroy binding iterator + /** + * This operation destroys the iterator. + */ + void destroy(); + }; + + + /** + * A naming context is an object that contains a set of name bindings in + * which each name is unique. Different names can be bound to an object + * in the same or different contexts at the same time. <p> + * + * See <a href=" http://www.omg.org/corba/sectrans.htm#nam">CORBA COS + * Naming Specification.</a> + */ + + interface NamingContext + { + // Declare exceptions + /** + * + */ + enum NotFoundReason + { + missing_node, + not_context, + not_object + }; + + /** + * Indicates the name does not identify a binding. + */ + exception NotFound + { + NotFoundReason why; + Name rest_of_name; + }; + + /** + * Indicates that the implementation has given up for some reason. + * The client, however, may be able to continue the operation at the + * returned naming context. + */ + exception CannotProceed + { + NamingContext cxt; + Name rest_of_name; + }; + + /** + * Indicates the name is invalid. + */ + exception InvalidName + {}; + + /** + * Indicates an object is already bound to the specified name. Only + * one object can be bound to a particular name in a context. + */ + exception AlreadyBound + {}; + + /** + * Indicates that the Naming Context contains bindings. + */ + exception NotEmpty + {}; + + /** + * Creates a binding of a name and an object in the naming context. + * Naming contexts that are bound using bind do not participate in name + * resolution when compound names are passed to be resolved. + * + * @param n Name of the object <p> + * + * @param obj The Object to bind with the given name<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound Indicates an object is already + * bound to the specified name.<p> + */ + void bind(in Name n, + in Object obj) + raises(NotFound, + CannotProceed, + InvalidName, + AlreadyBound); + + /** + * Names an object that is a naming context. Naming contexts that + * are bound using bind_context() participate in name resolution + * when compound names are passed to be resolved. + * + * @param n Name of the object <p> + * + * @param nc NamingContect object to bind with the given name <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound Indicates an object is already + * bound to the specified name.<p> + */ + void bind_context(in Name n, + in NamingContext nc) + raises(NotFound, + CannotProceed, + InvalidName, + AlreadyBound); + + /** + * Creates a binding of a name and an object in the naming context + * even if the name is already bound in the context. Naming contexts + * that are bound using rebind do not participate in name resolution + * when compound names are passed to be resolved. + * + * @param n Name of the object <p> + * + * @parm obj The Object to rebind with the given name <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + */ + void rebind(in Name n, + in Object obj) + raises(NotFound, + CannotProceed, + InvalidName); + + /** + * Creates a binding of a name and a naming context in the naming + * context even if the name is already bound in the context. Naming + * contexts that are bound using rebind_context() participate in name + * resolution when compound names are passed to be resolved. + * + * @param n Name of the object <p> + * + * @param nc NamingContect object to rebind with the given name <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + */ + void rebind_context(in Name n, + in NamingContext nc) + raises(NotFound, + CannotProceed, + InvalidName); + + /** + * The resolve operation is the process of retrieving an object + * bound to a name in a given context. The given name must exactly + * match the bound name. The naming service does not return the type + * of the object. Clients are responsible for "narrowing" the object + * to the appropriate type. That is, clients typically cast the returned + * object from Object to a more specialized interface. + * + * @param n Name of the object <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + */ + Object resolve(in Name n) + raises(NotFound, + CannotProceed, + InvalidName); + + /** + * The unbind operation removes a name binding from a context. + * + * @param n Name of the object <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + */ + void unbind(in Name n) + raises(NotFound, + CannotProceed, + InvalidName); + + /** + * The list operation allows a client to iterate through a set of + * bindings in a naming context. <p> + * + * The list operation returns at most the requested number of + * bindings in BindingList bl. + * <ul> + * <li>If the naming context contains additional + * bindings, the list operation returns a BindingIterator with the + * additional bindings. + * <li>If the naming context does not contain additional + * bindings, the binding iterator is a nil object reference. + * </ul> + * + * @param how_many the maximum number of bindings to return <p> + * + * @param bl the returned list of bindings <p> + * + * @param bi the returned binding iterator <p> + */ + void list(in unsigned long how_many, + out BindingList bl, + out BindingIterator bi); + + /** + * This operation returns a naming context implemented by the same + * naming server as the context on which the operation was invoked. + * The new context is not bound to any name. + */ + NamingContext new_context(); + + /** + * This operation creates a new context and binds it to the name + * supplied as an argument. The newly-created context is implemented + * by the same naming server as the context in which it was bound (that + * is, the naming server that implements the context denoted by the + * name argument excluding the last component). + * + * @param n Name of the object <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound Indicates an object is already + * bound to the specified name.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + */ + NamingContext bind_new_context(in Name n) + raises(NotFound, + AlreadyBound, + CannotProceed, + InvalidName); + + /** Not implemented yet! + void destroy() + raises(NotEmpty); + * The destroy operation deletes a naming context. If the naming + * context contains bindings, the NotEmpty exception is raised. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotEmpty Indicates that the Naming Context contains bindings. + */ + }; + /** + * A naming context extension is an extenrion to naming context that contains a set of name bindings in + * which each name is unique. Different names can be bound to an object + * in the same or different contexts at the same time. <p> + * + * See <a href=" http://www.omg.org/corba/sectrans.htm#nam">CORBA COS + * Naming Specification.</a> + */ + + interface NamingContextExt : CosNaming::NamingContext { + + typedef string StringName; + typedef string Address; + typedef string URLString; + + /** + * The to_string operation is the process of retrieving a stringified name + * from a name object. + * + * @param n String Name of the object <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + */ + StringName to_string(in Name n) + raises( + NamingContext::InvalidName); + + /** + * The to_name operation is the process of retrieving a name object + * to a stringified name. + * + * @param n String Name of the object <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + */ + Name to_name(in StringName sn) + raises(NamingContext::InvalidName); + + + exception InvalidAddress {}; + + /** + * The to_url operation is the process of retrieving a url representation from a stringified name and + * address. + * + * @param addr Address of the object <p> + * + * @param sn String Name of the object <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidAddress Indicates that the Address is invalid. <p> + */ + URLString to_url(in Address addr, in StringName sn) + raises( + InvalidAddress, + NamingContext::InvalidName); + /** + * The resolve_str operation is the process of retrieving an object + * bound to a stringified name in a given context. The given name must exactly + * match the bound name. The naming service does not return the type + * of the object. Clients are responsible for "narrowing" the object + * to the appropriate type. That is, clients typically cast the returned + * object from Object to a more specialized interface. + * + * @param n String Name of the object <p> + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context.<p> + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. <p> + */ + + Object resolve_str(in StringName n) + raises( + NamingContext::NotFound, + NamingContext::CannotProceed, + NamingContext::InvalidName); + }; +}; Added: geronimo/trunk/specs/corba/src/idl/CosTSInteroperation.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/CosTSInteroperation.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/CosTSInteroperation.idl (added) +++ geronimo/trunk/specs/corba/src/idl/CosTSInteroperation.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,20 @@ +// PIDL for CosTSInteroperation Module, p 10-59 +// CORBAservices, Transaction Service V1.0, 3/94 + +#include <orb.idl> +#include <IOP.idl> +#include <CosTransactions.idl> + +#pragma prefix "omg.org" + + +module CosTSInteroperation { + const IOP::ComponentId TAG_TRANSACTION_POLICY=26; + + struct TransactionPolicyComponent { + CosTransactions::TransactionPolicyValue tpv; + }; + + const IOP::ComponentId TAG_OTS_POLICY= 31; + const IOP::ComponentId TAG_INV_POLICY= 32; +}; Added: geronimo/trunk/specs/corba/src/idl/CosTSPortability.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/CosTSPortability.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/CosTSPortability.idl (added) +++ geronimo/trunk/specs/corba/src/idl/CosTSPortability.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,32 @@ +//File: CosTSPortability.idl +//Part of the Transaction Service + +#ifndef _COS_TS_PORTABILITY_IDL_ +#define _COS_TS_PORTABILITY_IDL_ + +//Note Even though this module is marked PIDL, it compiles with +// an IDL compiler. + +#include <CosTransactions.idl> + +#pragma prefix "omg.org" + +module CosTSPortability { // PIDL + typedef long ReqId; + + interface Sender { + void sending_request(in ReqId id, + out CosTransactions::PropagationContext ctx); + void received_reply(in ReqId id, + in CosTransactions::PropagationContext ctx, + in CORBA::Environment env); + }; + + interface Receiver { + void received_request(in ReqId id, + in CosTransactions::PropagationContext ctx); + void sending_reply(in ReqId id, + out CosTransactions::PropagationContext ctx); + }; +}; +#endif /* ifndef _COS_TS_PORTABILITY_IDL_ */ \ No newline at end of file Added: geronimo/trunk/specs/corba/src/idl/CosTransactions.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/CosTransactions.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/CosTransactions.idl (added) +++ geronimo/trunk/specs/corba/src/idl/CosTransactions.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,247 @@ +#include <orb.idl> + +module CosTransactions { +// DATATYPES +enum Status { + StatusActive, + StatusMarkedRollback, + StatusPrepared, + StatusCommitted, + StatusRolledBack, + StatusUnknown, + StatusNoTransaction, + StatusPreparing, + StatusCommitting, + StatusRollingBack +}; + +enum Vote { + VoteCommit, + VoteRollback, + VoteReadOnly +}; + +typedef unsigned short TransactionPolicyValue; + +// TransactionPolicyValue definitions are deprecated and replaced // +// with new InvocationPolicy and OTSPolicy definitions. They are // +// retained for backward compatibility. // +const TransactionPolicyValue Allows_shared = 0; +const TransactionPolicyValue Allows_none = 1; +const TransactionPolicyValue Requires_shared = 2; +const TransactionPolicyValue Allows_unshared = 3; +const TransactionPolicyValue Allows_either = 4; +const TransactionPolicyValue Requires_unshared = 5; +const TransactionPolicyValue Requires_either = 6; + +// Forward references for interfaces defined later in module +interface Current; +interface TransactionFactory; +interface Control; +interface Terminator; +interface Coordinator; +interface RecoveryCoordinator; +interface Resource; +interface Synchronization; +interface SubtransactionAwareResource; + +// Structure definitions +struct otid_t { + long formatID; /*format identifier. 0 is OSI TP */ + long bqual_length; + sequence <octet> tid; +}; + +struct TransIdentity { + Coordinator coord; + Terminator term; + otid_t otid; +}; + +struct PropagationContext { + unsigned long timeout; + TransIdentity current; + sequence <TransIdentity> parents; + any implementation_specific_data; +}; + +// TransactionalObject has been deprecated. See 10.3.10. +interface TransactionalObject; + +// Heuristic exceptions +exception HeuristicRollback {}; +exception HeuristicCommit {}; +exception HeuristicMixed {}; +exception HeuristicHazard {}; + +// Other transaction-specific exceptions +exception SubtransactionsUnavailable {}; +exception NotSubtransaction {}; +exception Inactive {}; +exception NotPrepared {}; +exception NoTransaction {}; +exception InvalidControl {}; +exception Unavailable {}; +exception SynchronizationUnavailable {}; + +// Current transaction +interface Current : CORBA::Current { + void begin() + raises(SubtransactionsUnavailable); + void commit(in boolean report_heuristics) + raises( + NoTransaction, + HeuristicMixed, + HeuristicHazard + ); + void rollback() + raises(NoTransaction); + void rollback_only() + raises(NoTransaction); + Status get_status(); + string get_transaction_name(); + void set_timeout(in unsigned long seconds); + unsigned long get_timeout (); + Control get_control(); + Control suspend(); + void resume(in Control which) + raises(InvalidControl); +}; + +interface TransactionFactory { + Control create(in unsigned long time_out); + Control recreate(in PropagationContext ctx); +}; + +interface Control { + Terminator get_terminator() + raises(Unavailable); + Coordinator get_coordinator() + raises(Unavailable); +}; + +interface Terminator { + void commit(in boolean report_heuristics) + raises( + HeuristicMixed, + HeuristicHazard + ); + void rollback(); +}; + +interface Coordinator { + + Status get_status(); + Status get_parent_status(); + Status get_top_level_status(); + + boolean is_same_transaction(in Coordinator tc); + boolean is_related_transaction(in Coordinator tc); + boolean is_ancestor_transaction(in Coordinator tc); + boolean is_descendant_transaction(in Coordinator tc); + boolean is_top_level_transaction(); + + unsigned long hash_transaction(); + unsigned long hash_top_level_tran(); + + RecoveryCoordinator register_resource(in Resource r) + raises(Inactive); + + void register_synchronization (in Synchronization sync) + raises(Inactive, SynchronizationUnavailable); + + void register_subtran_aware(in SubtransactionAwareResource r) + raises(Inactive, NotSubtransaction); + + void rollback_only() + raises(Inactive); + + string get_transaction_name(); + Control create_subtransaction() + raises(SubtransactionsUnavailable, Inactive); + + PropagationContext get_txcontext () + raises(Unavailable); +}; + +interface RecoveryCoordinator { + Status replay_completion(in Resource r) +raises(NotPrepared); +}; + +interface Resource { + Vote prepare() + raises( + HeuristicMixed, + HeuristicHazard + ); + void rollback() + raises( + HeuristicCommit, + HeuristicMixed, + HeuristicHazard + ); + void commit() + raises( + NotPrepared, + HeuristicRollback, + HeuristicMixed, + HeuristicHazard + ); + void commit_one_phase() + raises( + HeuristicHazard + ); + void forget(); +}; + +// TransactionalObject has been deprecated. See 10.3.10. +interface TransactionalObject { +}; + +// TransactionalObject has been deprecated // +// and replaced by the OTSPolicy component // +// Synchronization will use the OTSPolicy of ADAPTS // +// Inheritance from TransactionalObject is for backward compatability // + +interface Synchronization :TransactionalObject { + void before_completion(); + void after_completion(in Status s); +}; + +interface SubtransactionAwareResource : Resource { + void commit_subtransaction(in Coordinator parent); + void rollback_subtransaction(); +}; + +// TransactionPolicyType is deprecated and replaced // +// by InvocationPolicyType and OTSPolicyType // +// It is retained for backward compatibility. // +const CORBA::PolicyType TransactionPolicyType = 46; +interface TransactionPolicy : CORBA::Policy { + readonly attribute TransactionPolicyValue tpv; +}; +typedef unsigned short InvocationPolicyValue; +const InvocationPolicyValue EITHER = 0; +const InvocationPolicyValue SHARED = 1; +const InvocationPolicyValue UNSHARED =2; +typedef unsigned short OTSPolicyValue; +const OTSPolicyValue REQUIRES = 1; +const OTSPolicyValue FORBIDS =2; +const OTSPolicyValue ADAPTS =3; +typedef unsigned short NonTxTargetPolicyValue; +const NonTxTargetPolicyValue PREVENT = 0; +const NonTxTargetPolicyValue PERMIT = 1; +const CORBA::PolicyType INVOCATION_POLICY_TYPE = 55; +interface InvocationPolicy : CORBA::Policy { +readonly attribute InvocationPolicyValue ipv; +}; +const CORBA::PolicyType OTS_POLICY_TYPE = 56; +interface OTSPolicy : CORBA::Policy { +readonly attribute OTSPolicyValue tpv; +}; +const CORBA::PolicyType NON_TX_TARGET_POLICY_TYPE = 57; +interface NonTxTargetPolicy : CORBA::Policy { +readonly attribute NonTxTargetPolicyValue tpv; +}; +}; // End of CosTransactions Module \ No newline at end of file Added: geronimo/trunk/specs/corba/src/idl/GIOP.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/GIOP.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/GIOP.idl (added) +++ geronimo/trunk/specs/corba/src/idl/GIOP.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,239 @@ +// File: GIOP.idl +// From CORBA 3.0: Chapter 15, General Inter-ORB Protocol + +#define _PRE_3_0_COMPILER_ +#define GIOP_1_1 +#define GIOP_1_2 + +#ifndef _GIOP_IDL_ +#define _GIOP_IDL_ + +#ifdef _PRE_3_0_COMPILER_ +#pragma prefix "omg.org" +#include <IOP.idl> +#else +import ::IOP; +#endif // _PRE_3_0_COMPILER_ + +module GIOP { // IDL extended for version 1.1 and 1.2 + +#ifndef _PRE_3_0_COMPILER_ + typeprefix GIOP "omg.org"; +#endif // _PRE_3_0_COMPILER_ + + struct Version { + octet major; + octet minor; + }; + + // Note: Principal is not used in V1.2 and beyond. However, it must + // be available for V1.0 and V1.1 + typedef sequence<octet> Principal; + +#ifndef GIOP_1_1 + // GIOP 1.0 + enum MsgType_1_0{ // rename from MsgType + Request, Reply, CancelRequest, + LocateRequest, LocateReply, + CloseConnection, MessageError + }; +#else + // GIOP 1.1 + enum MsgType_1_1{ + Request, Reply, CancelRequest, + LocateRequest, LocateReply, + CloseConnection, MessageError, + Fragment // GIOP 1.1 addition + }; +#endif // GIOP_1_1 + typedef MsgType_1_1 MsgType_1_2; + typedef MsgType_1_1 MsgType_1_3; + + + // GIOP 1.0 + struct MessageHeader_1_0 {// Renamed from MessageHeader + char magic [4]; + Version GIOP_version; + boolean byte_order; + octet message_type; + unsigned long message_size; + }; + + // GIOP 1.1 + struct MessageHeader_1_1 { + char magic [4]; + Version GIOP_version; + octet flags; // GIOP 1.1 change + octet message_type; + unsigned long message_size; + }; + + // GIOP 1.2 + typedef MessageHeader_1_1 MessageHeader_1_2; + + // GIOP 1.3 + typedef MessageHeader_1_1 MessageHeader_1_3; + + // GIOP 1.0 + struct RequestHeader_1_0 { + IOP::ServiceContextList service_context; + unsigned long request_id; + boolean response_expected; + sequence <octet> object_key; + string operation; + Principal requesting_principal; + }; + + // GIOP 1.1 + struct RequestHeader_1_1 { + IOP::ServiceContextList service_context; + unsigned long request_id; + boolean response_expected; + octet reserved[3]; // Added in GIOP 1.1 + sequence <octet> object_key; + string operation; + Principal requesting_principal; + }; + + // GIOP 1.2 + typedef short AddressingDisposition; + const short KeyAddr = 0; + const short ProfileAddr = 1; + const short ReferenceAddr = 2; + struct IORAddressingInfo { + unsigned long selected_profile_index; + IOP::IOR ior; + }; + union TargetAddress switch (AddressingDisposition) { + case KeyAddr: sequence <octet> object_key; + case ProfileAddr: IOP::TaggedProfile profile; + case ReferenceAddr: IORAddressingInfo ior; + }; + struct RequestHeader_1_2 { + unsigned long request_id; + octet response_flags; + octet reserved[3]; + TargetAddress target; + string operation; + // Principal not in GIOP 1.2 + IOP::ServiceContextList service_context; // 1.2 change + }; + + // GIOP 1.3 + typedef RequestHeader_1_2 RequestHeader_1_3; + +#ifndef GIOP_1_2 + // GIOP 1.0 and 1.1 + enum ReplyStatusType_1_0 {// Renamed from ReplyStatusType + NO_EXCEPTION, + USER_EXCEPTION, + SYSTEM_EXCEPTION, + LOCATION_FORWARD + }; +#endif + + // GIOP 1.2 + enum ReplyStatusType_1_2 { + NO_EXCEPTION, + USER_EXCEPTION, + SYSTEM_EXCEPTION, + LOCATION_FORWARD, + LOCATION_FORWARD_PERM, // new value for 1.2 + NEEDS_ADDRESSING_MODE // new value for 1.2 + }; + + struct ReplyHeader_1_2 { + unsigned long request_id; + ReplyStatusType_1_2 reply_status; + IOP::ServiceContextList service_context; // 1.2 change + }; + + // GIOP 1.3 + typedef ReplyHeader_1_2 ReplyHeader_1_3; + + // GIOP 1.0 + struct ReplyHeader_1_0 {// Renamed from ReplyHeader + IOP::ServiceContextList service_context; + unsigned long request_id; + ReplyStatusType_1_2 reply_status; + }; + + // GIOP 1.1 + typedef ReplyHeader_1_0 ReplyHeader_1_1; + // Same Header contents for 1.0 and 1.1 + + struct SystemExceptionReplyBody { + string exception_id; + unsigned long minor_code_value; + unsigned long completion_status; + }; + + struct CancelRequestHeader { + unsigned long request_id; + }; + + // GIOP 1.0 + struct LocateRequestHeader_1_0 {// Renamed LocationRequestHeader + unsigned long request_id; + sequence <octet> object_key; + }; + + // GIOP 1.1 + typedef LocateRequestHeader_1_0 LocateRequestHeader_1_1; + // Same Header contents for 1.0 and 1.1 + + // GIOP 1.2 + struct LocateRequestHeader_1_2 { + unsigned long request_id; + TargetAddress target; + }; + + // GIOP 1.3 + typedef LocateRequestHeader_1_2 LocateRequestHeader_1_3; + +#ifndef GIOP_1_2 + // GIOP 1.0 and 1.1 + enum LocateStatusType_1_0 {// Renamed from LocateStatusType + UNKNOWN_OBJECT, + OBJECT_HERE, + OBJECT_FORWARD + }; +#endif + + // GIOP 1.2 + enum LocateStatusType_1_2 { + UNKNOWN_OBJECT, + OBJECT_HERE, + OBJECT_FORWARD, + OBJECT_FORWARD_PERM, // new value for GIOP 1.2 + LOC_SYSTEM_EXCEPTION, // new value for GIOP 1.2 + LOC_NEEDS_ADDRESSING_MODE // new value for GIOP 1.2 + }; + struct LocateReplyHeader_1_2 { + unsigned long request_id; + LocateStatusType_1_2 locate_status; + }; + + // GIOP 1.3 + typedef LocateReplyHeader_1_2 LocateReplyHeader_1_3; + + // GIOP 1.0 + struct LocateReplyHeader_1_0 {// Renamed from LocateReplyHeader + unsigned long request_id; + LocateStatusType_1_2 locate_status; + }; + + // GIOP 1.1 + typedef LocateReplyHeader_1_0 LocateReplyHeader_1_1; + // same Header contents for 1.0 and 1.1 + + // GIOP 1.2 + struct FragmentHeader_1_2 { + unsigned long request_id; + }; + + // GIOP 1.3 + typedef FragmentHeader_1_2 FragmentHeader_1_3; + +}; +#endif // _GIOP_IDL_ Added: geronimo/trunk/specs/corba/src/idl/GSSUP.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/GSSUP.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/GSSUP.idl (added) +++ geronimo/trunk/specs/corba/src/idl/GSSUP.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,53 @@ +#ifndef _GSSUP_IDL_ +#define _GSSUP_IDL_ +#include <CSI.idl> + +#pragma prefix "omg.org" + +module GSSUP { + + // The GSS Object Identifier allocated for the + // username/password mechanism is defined below. + // + // { iso-itu-t (2) international-organization (23) omg (130) + // security (1) authentication (1) gssup-mechanism (1) } + + const CSI::StringOID GSSUPMechOID = "oid:2.23.130.1.1.1"; + + // The following structure defines the inner contents of the + // username password initial context token. This structure is + // CDR encapsulated and appended at the end of the + // username/password GSS (initial context) Token. + + struct InitialContextToken { + CSI::UTF8String username; + CSI::UTF8String password; + CSI::GSS_NT_ExportedName target_name; + }; + + typedef unsigned long ErrorCode; + + // GSSUP Mechanism-Specific Error Token + struct ErrorToken { + ErrorCode error_code; + }; + + // The context validator has chosen not to reveal the GSSUP + // specific cause of the failure. + const ErrorCode GSS_UP_S_G_UNSPECIFIED = 1; + + // The user identified in the username field of the + // GSSUP::InitialContextToken is unknown to the target. + const ErrorCode GSS_UP_S_G_NOUSER = 2; + + // The password supplied in the GSSUP::InitialContextToken was + // incorrect. + const ErrorCode GSS_UP_S_G_BAD_PASSWORD = 3; + + // The target_name supplied in the GSSUP::InitialContextToken does + // not match a target_name in a mechanism definition of the target. + const ErrorCode GSS_UP_S_G_BAD_TARGET = 4; + +}; // GSSUP + +#endif Added: geronimo/trunk/specs/corba/src/idl/IIOP.idl URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/corba/src/idl/IIOP.idl?view=auto&rev=159240 ============================================================================== --- geronimo/trunk/specs/corba/src/idl/IIOP.idl (added) +++ geronimo/trunk/specs/corba/src/idl/IIOP.idl Mon Mar 28 07:07:05 2005 @@ -0,0 +1,53 @@ +// File: IIOP.idl +// From CORBA 3.0: Chapter 15, General Inter-ORB Protocol + +#define _PRE_3_0_COMPILER_ + +#ifndef _IIOP_IDL_ +#define _IIOP_IDL_ + +#ifdef _PRE_3_0_COMPILER_ +#pragma prefix "omg.org" +#include <IOP.idl> +#else +import ::IOP; +#endif // _PRE_3_0_COMPILER_ + +module IIOP { // IDL extended for version 1.1 and 1.2 + +#ifndef _PRE_3_0_COMPILER_ + typeprefix IIOP "omg.org"; +#endif // _PRE_3_0_COMPILER_ + + struct Version { + octet major; + octet minor; + }; + struct ProfileBody_1_0 {// renamed from ProfileBody + Version iiop_version; + string host; + unsigned short port; + sequence <octet> object_key; + }; + struct ProfileBody_1_1 {// also used for 1.2 + Version iiop_version; + string host; + unsigned short port; + sequence <octet> object_key; + // Added in 1.1 unchanged for 1.2 + sequence <IOP::TaggedComponent> components; + }; + + // BiDirectional IIOP + + struct ListenPoint { + string host; + unsigned short port; + }; + typedef sequence<ListenPoint> ListenPointList; + struct BiDirIIOPServiceContext {// BI_DIR_IIOP Service Context + ListenPointList listen_points; + }; +}; +#endif // _IIOP_IDL_ +