[jboss-cvs] Repository SVN: r517 - in jacorb: 2.3.0jboss.patch2 and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu May 31 04:38:17 EDT 2007


Author: dimitris at jboss.org
Date: 2007-05-31 04:38:17 -0400 (Thu, 31 May 2007)
New Revision: 517

Added:
   jacorb/2.3.0jboss.patch2/
   jacorb/2.3.0jboss.patch2/README
   jacorb/2.3.0jboss.patch2/component-info.xml
   jacorb/2.3.0jboss.patch2/lib/
   jacorb/2.3.0jboss.patch2/lib/idl.jar
   jacorb/2.3.0jboss.patch2/lib/idl_g.jar
   jacorb/2.3.0jboss.patch2/lib/jacorb.jar
   jacorb/2.3.0jboss.patch2/lib/jacorb_g.jar
   jacorb/2.3.0jboss.patch2/patchfile.from_JacORB_2.3.0_to_JacORB_2_3_0jboss.patch2
   jacorb/2.3.0jboss.patch2/resources/
   jacorb/2.3.0jboss.patch2/resources/CSI.idl
   jacorb/2.3.0jboss.patch2/resources/CosTransactions.idl
   jacorb/2.3.0jboss.patch2/resources/jacorb.properties
   jacorb/2.3.0jboss.patch2/resources/orb.idl
Log:
import a first cut of jacorb 2.3.0jboss.patch2

Added: jacorb/2.3.0jboss.patch2/README
===================================================================
--- jacorb/2.3.0jboss.patch2/README	                        (rev 0)
+++ jacorb/2.3.0jboss.patch2/README	2007-05-31 08:38:17 UTC (rev 517)
@@ -0,0 +1,69 @@
+The files jacorb.jar and idl.jar in this directory are a patched version of 
+JacORB 2.3.0. The patched libraries identify themselves as 
+
+        JacORB V 2.3.0 (JBoss patch 2), www.jacorb.org
+
+Instructions for generating these files are included below.
+
+Kudos to the JacORB team, for this great open-source ORB.
+
+Special thanks to:
+
+        Gerald Brose, for creating JacORB
+
+        Andre Spiegel, for his work on OBV in JacORB
+
+Francisco
+
+---------------------------------------------------------------------------
+
+ *** How to generate the jacorb.jar and idl.jar files in this directory ***
+
+(1) Obtain a JacORB 2.3.0 source tree, with the following command:
+
+cvs -d :pserver:anonymous at www.jacorb.org/cvsroot/jacorb checkout -r RELEASE_2_3_0 JacORB
+
+(2) Apply the following patches from the JacORB CVS repository:
+
+cd JacORB
+
+# The size of a chunk should not include any bytes of padding that might have
+# been added after the chunk for alignment purposes. This patch allows JacORB 
+# to interoperate with the ORB in Sun's JDK 1.5 with chunking of custom RMI
+# valuetypes enabled (jacorb.interop.chunk_custom_rmi_valuetypes=on), as it 
+# should be per the CORBA spec. 
+cvs update -r1.123 src/org/jacorb/orb/CDROutputStream.java
+
+# In handle_chunking: change to distinguish a null value tag from
+# a chunk size tag (the latter must be positive).
+# In read_untyped_value and readChunkSizeTag: changes for correctness (to 
+# ensure that chunk_end_pos is set to -1 if we are not within a chunk) and 
+# for clarity.
+cvs update -r1.115 src/org/jacorb/orb/CDRInputStream.java
+
+# Fix for bug #782 in JacORB's bugzilla system:
+# The creation of an SSLServerSocket fails when JacORB 2.3.0 uses the JSSE
+# included in Sun's JDK 1.4 and later releases. The problem is in the wrapper
+# class JSSEUtil, which causes an IllegalAccessException to be thrown.
+cvs update -r1.2 src/org/jacorb/security/ssl/sun_jsse/JSSEUtil.java
+
+(3) Apply the patchfile below:
+
+Index: src/org/jacorb/util/Version.java
+===================================================================
+RCS file: /cvsroot/jacorb/JacORB/src/org/jacorb/util/Version.java,v
+retrieving revision 1.36
+diff -u -r1.36 Version.java
+--- src/org/jacorb/util/Version.java	17 Feb 2007 18:54:00 -0000	1.36
++++ src/org/jacorb/util/Version.java	31 May 2007 01:48:21 -0000
+@@ -28,8 +28,8 @@
+  */
+ public final class Version
+ {
+-    public static final String version = "2.3.0";
+-    public static final String date = "17-Feb-2007";
++    public static final String version = "2.3.0 (JBoss patch 2)";
++    public static final String date = "30-May-2007";
+     public static final String longVersion = version + ", " + date;
+     public static final String yearString = "1997-2007";
+ }

Added: jacorb/2.3.0jboss.patch2/component-info.xml
===================================================================
--- jacorb/2.3.0jboss.patch2/component-info.xml	                        (rev 0)
+++ jacorb/2.3.0jboss.patch2/component-info.xml	2007-05-31 08:38:17 UTC (rev 517)
@@ -0,0 +1,33 @@
+<project name="jacorb-component-info">
+
+   <component id="jacorb"
+      licenseType="lgpl"
+      version="2.3.0jboss.patch2"
+      projectHome="http://www.jacorb.org"
+      description="Java implementation of the OMG's CORBA standard.">
+
+      <!-- Built using JDK 1.4 -->
+      <artifact id="idl.jar"/>
+      <artifact id="idl_g.jar"/>
+      <artifact id="jacorb.jar"/>
+      <artifact id="jacorb_g.jar"/>
+      <artifact id="orb.idl"/>
+      <artifact id="CSI.idl"/>
+      <artifact id="CosTransactions.idl"/>
+      <artifact id="jacorb.properties"/>
+      <import componentref="apache-avalon">
+         <compatible version="4.1.5"/>
+         <compatible version="4.1.5-brew"/>
+      </import>
+      <import componentref="apache-avalon-logkit">
+         <compatible version="1.2"/>
+         <compatible version="1.2-brew"/>
+      </import>
+      <export>
+         <include input="jacorb.jar"/>
+         <include input="jacorb_g.jar"/>         
+         <include input="idl.jar"/>
+      </export>
+   </component>
+
+</project>

Added: jacorb/2.3.0jboss.patch2/lib/idl.jar
===================================================================
(Binary files differ)


Property changes on: jacorb/2.3.0jboss.patch2/lib/idl.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: jacorb/2.3.0jboss.patch2/lib/idl_g.jar
===================================================================
(Binary files differ)


Property changes on: jacorb/2.3.0jboss.patch2/lib/idl_g.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: jacorb/2.3.0jboss.patch2/lib/jacorb.jar
===================================================================
(Binary files differ)


Property changes on: jacorb/2.3.0jboss.patch2/lib/jacorb.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: jacorb/2.3.0jboss.patch2/lib/jacorb_g.jar
===================================================================
(Binary files differ)


Property changes on: jacorb/2.3.0jboss.patch2/lib/jacorb_g.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: jacorb/2.3.0jboss.patch2/patchfile.from_JacORB_2.3.0_to_JacORB_2_3_0jboss.patch2
===================================================================
--- jacorb/2.3.0jboss.patch2/patchfile.from_JacORB_2.3.0_to_JacORB_2_3_0jboss.patch2	                        (rev 0)
+++ jacorb/2.3.0jboss.patch2/patchfile.from_JacORB_2.3.0_to_JacORB_2_3_0jboss.patch2	2007-05-31 08:38:17 UTC (rev 517)
@@ -0,0 +1,274 @@
+? README
+? Version.patch
+? patchfile
+? lib/jacorb_g.jar.list
+? lib/jacorb_no_g.jar.list
+? lib/saved
+Index: src/org/jacorb/orb/CDRInputStream.java
+===================================================================
+RCS file: /cvsroot/jacorb/JacORB/src/org/jacorb/orb/CDRInputStream.java,v
+retrieving revision 1.114
+retrieving revision 1.115
+diff -u -r1.114 -r1.115
+--- src/org/jacorb/orb/CDRInputStream.java	8 Jan 2007 12:18:45 -0000	1.114
++++ src/org/jacorb/orb/CDRInputStream.java	27 Apr 2007 19:14:06 -0000	1.115
+@@ -50,7 +50,7 @@
+  * Read CDR encoded data
+  *
+  * @author Gerald Brose, FU Berlin
+- * $Id: CDRInputStream.java,v 1.114 2007/01/08 12:18:45 alphonse.bendt Exp $
++ * $Id: CDRInputStream.java,v 1.115 2007/04/27 19:14:06 francisco Exp $
+  */
+ 
+ public class CDRInputStream
+@@ -466,7 +466,7 @@
+ 
+                 // tag is an end tag
+ 
+-                if ( ! (-tag <= valueNestingLevel))
++                if (-tag > valueNestingLevel)
+                 {
+                     throw new INTERNAL
+                     (
+@@ -475,7 +475,7 @@
+                         valueNestingLevel
+                     );
+                 }
+-                valueNestingLevel = - tag;
++                valueNestingLevel = -tag;
+                 valueNestingLevel--;
+ 
+                 if (valueNestingLevel > 0)
+@@ -484,17 +484,17 @@
+                     handle_chunking();
+                 }
+             }
+-            else if (tag < 0x7fffff00)
++            else if (tag > 0 && tag < 0x7fffff00)
+             {
+                 // tag is the chunk size tag of another chunk
+ 
+                 chunk_end_pos = pos + tag;
+             }
+-            else // (tag >= 0x7fffff00)
++            else // (tag == 0 || tag >= 0x7fffff00)
+             {
+-                // tag is the value tag of a nested value
++                // tag is the null value tag or the value tag of a nested value
+ 
+-                pos = saved_pos;      // "unread" the value tag
++                pos = saved_pos;      // "unread" the tag
+                 index = saved_index;
+             }
+         }
+@@ -2883,8 +2883,7 @@
+         if (chunkedValue || valueNestingLevel > 0)
+         {
+             valueNestingLevel++;
+-            int chunk_size_tag = readChunkSizeTag();
+-            chunk_end_pos = pos + chunk_size_tag;
++            readChunkSizeTag();
+         }
+ 
+         for (int i = 0; i < repository_ids.length; i++)
+@@ -3087,7 +3086,7 @@
+      * special handling if there's no chunk size
+      * in the stream.
+      */
+-    private int readChunkSizeTag()
++    private void readChunkSizeTag()
+     {
+         int savedPos = pos;
+         int savedIndex = index;
+@@ -3095,14 +3094,16 @@
+ 
+         if (!sunInteropFix || chunk_size_tag > 0 && chunk_size_tag < MAX_BLOCK_SIZE)
+         {
+-            // looks like the correct chunk size
+-            return chunk_size_tag;
++            // valid chunk size: set the ending position of the chunk 
++        	chunk_end_pos = pos + chunk_size_tag;
++        }
++        else 
++        {
++        	// reset buffer and remember that we're not within a chunk
++        	pos = savedPos;
++        	index = savedIndex;
++        	chunk_end_pos = -1;
+         }
+-
+-        // reset buffer
+-        pos = savedPos;
+-        index = savedIndex;
+-        return MAX_BLOCK_SIZE;
+     }
+ 
+     /**
+Index: src/org/jacorb/orb/CDROutputStream.java
+===================================================================
+RCS file: /cvsroot/jacorb/JacORB/src/org/jacorb/orb/CDROutputStream.java,v
+retrieving revision 1.122
+retrieving revision 1.123
+diff -u -r1.122 -r1.123
+--- src/org/jacorb/orb/CDROutputStream.java	30 Nov 2006 13:11:07 -0000	1.122
++++ src/org/jacorb/orb/CDROutputStream.java	26 Apr 2007 23:07:26 -0000	1.123
+@@ -47,7 +47,7 @@
+ 
+ /**
+  * @author Gerald Brose,  1999
+- * @version $Id: CDROutputStream.java,v 1.122 2006/11/30 13:11:07 alphonse.bendt Exp $
++ * @version $Id: CDROutputStream.java,v 1.123 2007/04/26 23:07:26 francisco Exp $
+  *
+  * A stream for CDR marshalling.
+  *
+@@ -2480,13 +2480,13 @@
+     }
+ 
+     public void write_value(final java.io.Serializable value,
+-                             final org.omg.CORBA.portable.BoxedValueHelper factory)
++                            final org.omg.CORBA.portable.BoxedValueHelper factory)
+     {
+         if (!write_special_value (value))
+         {
++            write_previous_chunk_size();
+             check(7,4);
+             getValueMap().put (value, ObjectUtil.newInteger(pos));
+-            write_previous_chunk_size();
+             if ((value instanceof org.omg.CORBA.portable.IDLEntity) ||
+                 (value instanceof java.lang.String))
+             {
+@@ -2635,7 +2635,6 @@
+      */
+     private void write_value_header(final String[] repository_ids)
+     {
+-        write_previous_chunk_size();
+         if (repository_ids != null)
+         {
+             if( repository_ids.length > 1 )
+@@ -2670,7 +2669,6 @@
+     {
+         if (codebase != null)
+         {
+-            write_previous_chunk_size();
+             if ( repository_ids != null )
+             {
+                 if( repository_ids.length > 1 )
+@@ -2718,6 +2716,7 @@
+     private void write_value_internal(final java.io.Serializable value,
+                                        final String repository_id)
+     {
++    	write_previous_chunk_size();
+         check(7,4);
+         getValueMap().put(value, ObjectUtil.newInteger(pos));
+ 
+@@ -2930,9 +2929,9 @@
+      */
+     private void write_previous_chunk_size()
+     {
+-        if( chunk_size_tag_pos != -1 )
++        if (chunk_size_tag_pos != -1)
+         {
+-            if ( pos == chunk_octets_pos)
++            if (pos == chunk_octets_pos)
+             {
+                 // empty chunk: erase chunk size tag
+                 pos = chunk_size_tag_pos;      // the tag will be overwritten
+Index: src/org/jacorb/security/ssl/sun_jsse/JSSEUtil.java
+===================================================================
+RCS file: /cvsroot/jacorb/JacORB/src/org/jacorb/security/ssl/sun_jsse/JSSEUtil.java,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -u -r1.1 -r1.2
+--- src/org/jacorb/security/ssl/sun_jsse/JSSEUtil.java	14 Jun 2006 12:49:22 -0000	1.1
++++ src/org/jacorb/security/ssl/sun_jsse/JSSEUtil.java	30 May 2007 22:55:28 -0000	1.2
+@@ -33,7 +33,7 @@
+  * use the JSSE included with JDK1.4 or standalone version 1.0.x
+  *
+  * @author Alphonse Bendt
+- * @version $Id: JSSEUtil.java,v 1.1 2006/06/14 12:49:22 alphonse.bendt Exp $
++ * @version $Id: JSSEUtil.java,v 1.2 2007/05/30 22:55:28 francisco Exp $
+  */
+ public class JSSEUtil
+ {
+@@ -44,8 +44,7 @@
+         boolean result;
+         try
+         {
+-            Class clazz = Class.forName("javax.net.ssl.SSLSocket");
+-            clazz.getMethod("setEnabledProtocols", new Class[] {String[].class});
++            SSLSocket.class.getMethod("setEnabledProtocols", new Class[] {String[].class});
+             result = true;
+         }
+         catch(Exception e)
+@@ -57,15 +56,29 @@
+ 
+     public static void setEnabledProtocols(SSLSocket socket, String[] enabledProtocols)
+     {
+-        _setEnabledProtocols(socket, enabledProtocols);
+-    }
++        if (!isJDK14)
++        {
++            // method does not exist in pre JDK 1.4 JSSE
++            return;
++        }
+ 
+-    public static void setEnabledProtocols(SSLServerSocket socket, String[] enabledProtocols)
+-    {
+-        _setEnabledProtocols(socket, enabledProtocols);
++        try
++        {
++            Method method = SSLSocket.class.getMethod("setEnabledProtocols", new Class[] {String[].class});
++            method.invoke(socket, new Object[] {enabledProtocols});
++        }
++        catch (InvocationTargetException e)
++        {
++            throw new RuntimeException(e.getTargetException().toString());
++        }
++        catch (Exception e)
++        {
++            // shouldn't happen on JDK1.4
++            throw new RuntimeException(e.toString());
++        }
+     }
+ 
+-    private static void _setEnabledProtocols(Object socket, String[] enabledProtocols)
++    public static void setEnabledProtocols(SSLServerSocket socket, String[] enabledProtocols)
+     {
+         if (!isJDK14)
+         {
+@@ -75,7 +88,7 @@
+ 
+         try
+         {
+-            Method method = socket.getClass().getMethod("setEnabledProtocols", new Class[] {enabledProtocols.getClass()});
++            Method method = SSLServerSocket.class.getMethod("setEnabledProtocols", new Class[] {String[].class});
+             method.invoke(socket, new Object[] {enabledProtocols});
+         }
+         catch (InvocationTargetException e)
+@@ -131,7 +144,7 @@
+ 
+         try
+         {
+-            Method method = s.getClass().getMethod("setWantClientAuth", new Class[] {Boolean.TYPE});
++            Method method = SSLServerSocket.class.getMethod("setWantClientAuth", new Class[] {Boolean.TYPE});
+             method.invoke(s, new Object[] {Boolean.valueOf(request_mutual_auth)});
+         }
+         catch(Exception e)
+Index: src/org/jacorb/util/Version.java
+===================================================================
+RCS file: /cvsroot/jacorb/JacORB/src/org/jacorb/util/Version.java,v
+retrieving revision 1.36
+diff -u -r1.36 Version.java
+--- src/org/jacorb/util/Version.java	17 Feb 2007 18:54:00 -0000	1.36
++++ src/org/jacorb/util/Version.java	31 May 2007 01:52:21 -0000
+@@ -28,8 +28,8 @@
+  */
+ public final class Version
+ {
+-    public static final String version = "2.3.0";
+-    public static final String date = "17-Feb-2007";
++    public static final String version = "2.3.0 (JBoss patch 2)";
++    public static final String date = "30-May-2007";
+     public static final String longVersion = version + ", " + date;
+     public static final String yearString = "1997-2007";
+ }

Added: jacorb/2.3.0jboss.patch2/resources/CSI.idl
===================================================================
--- jacorb/2.3.0jboss.patch2/resources/CSI.idl	                        (rev 0)
+++ jacorb/2.3.0jboss.patch2/resources/CSI.idl	2007-05-31 08:38:17 UTC (rev 517)
@@ -0,0 +1,202 @@
+#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-idependent
+    // 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: jacorb/2.3.0jboss.patch2/resources/CosTransactions.idl
===================================================================
--- jacorb/2.3.0jboss.patch2/resources/CosTransactions.idl	                        (rev 0)
+++ jacorb/2.3.0jboss.patch2/resources/CosTransactions.idl	2007-05-31 08:38:17 UTC (rev 517)
@@ -0,0 +1,206 @@
+//File: CosTransactions.idl
+//Part of the Transaction Service
+
+#ifndef _COS_TRANSACTIONS_IDL_
+#define _COS_TRANSACTIONS_IDL_
+
+#include <orb.idl>
+
+#pragma prefix "omg.org"
+
+module CosTransactions {
+
+	// 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;
+	interface TransactionalObject;
+
+	// DATATYPES
+	enum Status {
+		StatusActive,
+		StatusMarkedRollback,
+		StatusPrepared,
+		StatusCommitted,
+		StatusRolledBack,
+		StatusUnknown,
+		StatusNoTransaction,
+		StatusPreparing,
+		StatusCommitting,
+		StatusRollingBack
+	};
+
+	enum Vote {
+		VoteCommit,
+		VoteRollback,
+		VoteReadOnly
+	};
+
+	// 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;
+	};
+
+	// 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);
+		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();
+	};
+
+	interface TransactionalObject {
+	};
+
+	interface Synchronization : TransactionalObject {
+		void before_completion();
+		void after_completion(in CosTransactions::Status status_);
+	};
+
+	interface SubtransactionAwareResource : Resource {
+		void commit_subtransaction(in Coordinator parent);
+		void rollback_subtransaction();
+	};
+
+}; // End of CosTransactions Module
+
+#endif /* ifndef _COS_TRANSACTIONS_IDL_ */

Added: jacorb/2.3.0jboss.patch2/resources/jacorb.properties
===================================================================
--- jacorb/2.3.0jboss.patch2/resources/jacorb.properties	                        (rev 0)
+++ jacorb/2.3.0jboss.patch2/resources/jacorb.properties	2007-05-31 08:38:17 UTC (rev 517)
@@ -0,0 +1,429 @@
+##  $Id: jacorb.properties,v 1.1 2006/08/04 18:22:26 reverbel Exp $
+
+###############################################################################
+##                                                                           ##
+##               JacORB configuration for the JBoss server                   ##
+##                                                                           ##
+###############################################################################
+
+########################################
+#
+# options to control the configuration stage
+#
+########################################
+
+# where to look for ORB config files?
+#jacorb.config.dir=e:/JacORB_CONFIG_FEATURE
+
+# controls log output (to the console!) during the configuration stage.
+# This can help to find out which config files are actually loaded!
+#    0   : nothing is logged
+#    1,2 : only errors
+#    3,4 : info (which config files were loaded)
+jacorb.config.log.verbosity=0
+# If you set the property above to nonzero, the messages 
+#
+#     "jacorb.home unset! Will use '.'" 
+#
+# and 
+#
+#     "File ./jacorb.properties for configuration jacorb not found"
+#
+# will appear at the console when the JBoss server starts. These messages 
+# can be safely ignored.
+
+########################################
+#                                      #
+#   Initial references configuration   #
+#                                      #
+########################################
+
+ORBInitRef.NameService=corbaloc::localhost:3528/JBoss/Naming/root
+
+########################################
+#                                      #
+#      Export of corbaloc IORs         #
+#                                      #
+########################################
+
+# the object key mapping below permit clients of a name service to
+# access it using corbaloc::ipaddress:portnum/NameService
+jacorb.orb.objectKeyMap.NameService=JBoss/Naming/root
+
+##################################
+#                                #
+#   ORB version number output    #
+#                                #
+##################################
+
+# if on, the ORB's version number is printed whenever the ORB is initialized
+jacorb.orb.print_version=off
+
+##################################
+#                                #
+#   Debug output configuration   #
+#                                #
+##################################
+
+# Logging levels for the ORB instance that runs within the JBoss application 
+# server are not defined in this file anymore. Instead of specifiyng logging
+# levels here, you should use category elements in file log4j.xml to limit the
+# logging output of the various JacORB categories (jacorb, jacorb.orb, 
+# jacorb.orb.factory, jacorb.orb.interceptors, jacorb.orb.giop, jacorb.orb.iiop,
+# jacorb.giop.conn, jacorb.poa, jacorb.naming). Examples:
+#
+# <category name="jacorb">
+#    <priority value="WARN"/>
+# </category>
+#
+# <category name="jacorb.poa">
+#    <priority value="DEBUG"/>
+# </category>
+#
+# The above for is the server-side ORB only. At the client side, JacORB logging
+# levels should still be defined via *.log.verbosity properties, in a 
+# client-side orb.properties or <ORBid>.properties (e.g., jacorb.properties) 
+# file. 
+
+# hexdump outgoing messages
+jacorb.debug.dump_outgoing_messages=off
+
+# hexdump incoming messages
+jacorb.debug.dump_incoming_messages=off
+
+##################################################
+#                                                #
+#    WARNING: The following properties should    #
+#    only be edited by the expert user. They     #
+#    can be left untouched in most cases!        #
+#                                                #
+##################################################
+
+################################
+#                              #
+#   Basic ORB Configuration    #
+#                              #
+################################
+
+# the GIOP minor version number to use for newly created IORs
+jacorb.giop_minor_version=2
+
+# number of retries if connection cannot directly be established
+jacorb.retries=5
+
+# how many msecs. do we wait between retries
+jacorb.retry_interval=500
+
+# size of network buffers for outgoing messages
+jacorb.outbuf_size=2048
+
+# log2 of maximum buffer size managed by the internal
+# buffer manager.
+#
+# This is NOT the maximum buffer size that
+# can be used, but just the largest size of buffers that
+# will be kept and managed. This value will be added to
+# an internal constant of 5, so the real value in bytes
+# is 2**(5+maxManagedBufSize-1). You only need to increase this
+# value if you are dealing with LOTS of LARGE data structures.
+# You may decrease it to make the buffer manager release large
+# buffers immediately rather than keeping them for later
+# reuse.
+jacorb.maxManagedBufSize=24
+# If this value is 0 an extra unlimited size buffer cache is created
+# for the CDROutputStreams. If this value is > 0 then the cache will
+# be purged every x msecs.
+jacorb.bufferManagerMaxFlush=-1
+
+# Normally, a jacorb server will close the TCP/IP connection right
+# after sending a CloseConnection message. However, it may
+# occasionally happen that the client sends a message into the closed
+# connection because it hasn't handled the CloseConnection yet. To
+# avoid this situation, closing of the TCP/IP connection can be delayed.
+#jacorb.connection.delay_close=on
+#jacorb.connection.timeout_after_closeconnection=20000
+
+# Wait the specified number of msecs for a reply to a request. If
+# exceeded, a org.omg.CORBA.TIMEOUT exception will be thrown
+#jacorb.connection.client.pending_reply_timeout=0
+
+# Client-side connection idle timeout. Set to a non-zero value
+# to close an idle connection after so many msecs. Default is zero,
+# meaning a connection will be kept open indefinitely, or until
+# the OS decides to close it.
+#jacorb.connection.client.idle_timeout=0
+
+# Server-side connection idle timeout. Set to a non-zero value
+# to close an idle connection after so many msecs. Default is zero,
+# meaning a connection will be kept open indefinitely, or until
+# the OS decides to close it.
+#jacorb.connection.server.timeout=10000
+
+# Max no of accepted connections on the server.
+#jacorb.connection.max_server_connections=
+
+# Max number of connection threads.
+#jacorb.connection.max_threads=
+
+# The number of msecs that are waited until the next attempt to find
+# an idle connection is made (i.e. do not continuously spin)
+#jacorb.connection.wait_for_idle_interval=500
+
+# The class name of the SelectionStrategy class
+#jacorb.connection.selection_strategy_class=
+
+# The class name of the StatisticsProvider class
+#jacorb.connection.statistics_provider_class=
+
+#jacorb.reference_caching=off
+
+#
+# The following property specifies the class which is used for
+# reference caching. WeakHashtable uses WeakReferences, so entries
+# get gc'ed if only the Hashtable has a reference to them. This
+# is useful if you have many references to short-living non-persistent
+# CORBA objects. It is only available for java 1.2 and above.
+#
+# On the other hand the standard Hashtable keeps the references until
+# they are explicitely deleted by calling _release(). This is useful
+# for persistent and long-living CORBA objects.
+#
+#jacorb.hashtable_class=org.jacorb.util.WeakHashtable
+#
+jacorb.hashtable_class=java.util.Hashtable
+
+# use GIOP 1.2 byte order markers (since CORBA 2.4-5)
+jacorb.use_bom=off
+
+# add additional IIOP 1.0 profiles even if we are using IIOP 1.2
+jacorb.giop.add_1_0_profiles=off
+
+# Use DNS names in IORs
+jacorb.dns.enable=off
+
+# Compact Typecodes (0 - off, 1 - partial (not member_names), 2 - all)
+jacorb.compactTypecodes=0
+
+# Cache typecode on read
+jacorb.cacheTypecodes=off
+
+# Cache poa names
+jacorb.cachePoaNames=off
+
+###########################################
+#                                         #
+#         Interoperability                #
+#                                         #
+###########################################
+
+# Turn off indirection encoding for repeated typecodes. This fixes
+# interoperability with certain broken ORB's eg. Orbix2000
+jacorb.interop.indirection_encoding_disable=off
+
+# Iona Comet CORBA/COM bridge can incorrectly encode buffer lengths.
+# Enabling this property adds additional length checking and adjustment
+# for interoperability with Comet.
+jacorb.interop.comet=off
+
+# Some ORBs do not set a byte value of 1 as a CDR encoded boolean true
+# value. Enabling this property interprets any non zero CDR encoded
+# boolean value as true.
+jacorb.interop.lax_boolean_encoding=off
+
+# Control whether the method create_abstract_interface_tc performs
+# a validity check on the name parameter or not. Turning this check
+# off circumvents a bug in Sun's implementation of javax.rmi.CORBA.ValueHander,
+# which occasionally passes an invalid name (an empty string) to
+# ORBSingleton.create_abstract_interface_tc. If you are using RMI valuetypes,
+# you should turn this property off. JBoss uses RMI (and RMI valuetypes), so
+# you should NOT turned this property on!
+jacorb.interop.strict_check_on_tc_creation=off
+
+# Custom-marshalled RMI valuetypes should be encoded as chunks, but some
+# ORBs are not able to decode chunked values. Disable this property for
+# interoperability with the ORB in Sun's JDK 1.4.2.
+jacorb.interop.chunk_custom_rmi_valuetypes=on
+
+# RMI/IIOP data encoded as chunks should contain the length of the chunk. 
+# The ORB in Sun's JDK does not always send the length always. Enable this 
+# property for interoperability with the Sun ORB.
+jacorb.interop.sun=on
+
+###########################################
+#                                         #
+#         Socket Factories                #
+#                                         #
+###########################################
+
+# A factory design pattern is used for the creation of sockets and server
+# sockets.
+# The jacorb.net.socket_factory property can be used to configure
+# a socket factory that must implement the operations defined in the
+# interface org.jacorb.orb.factory.SocketFactory.
+# The jacorb.net.server_socket_factory property can be used to configure a
+# server socket factory that must implement the operations defined in the
+# interface org.jacorb.orb.factory.ServerSocketFactory.
+#
+#jacorb.net.socket_factory=org.jacorb.orb.factory.DefaultSocketFactory
+#jacorb.net.server_socket_factory=org.jacorb.orb.factory.DefaultServerSocketFactory
+#jacorb.net.socket_factory=org.jacorb.orb.factory.PortRangeSocketFactory
+#jacorb.net.server_socket_factory=org.jacorb.orb.factory.PortRangeServerSocketFactory
+#
+# Additional socket factores are supported that allow for the configuration
+# of maximum and minimum port numbers that can be used. This can be used to
+# enable firewall traversal via a fixed port range. To use these socket factories
+# configure one or both of the following property pairs. The first property pair
+# configures the client socket factory and the second pair the server socket
+# factory.
+#
+#jacorb.net.socket_factory.port.min
+#jacorb.net.socket_factory.port.max
+#jacorb.net.server_socket_factory.port.min
+#jacorb.net.server_socket_factory.port.max
+
+###########################################
+#                                         #
+#         BiDirectional GIOP              #
+#                                         #
+###########################################
+
+# uncomment this initializer if you want to use BiDirectional GIOP
+
+#org.omg.PortableInterceptor.ORBInitializerClass.bidir_init=org.jacorb.orb.connection.BiDirConnectionInitializer
+
+
+###########################################
+#                                         #
+#       Proxy address in IOR              #
+#                                         #
+###########################################
+
+#
+# with these two properties it is possible to
+# tell the ORB what IP/port IORs should contain,
+# if the ServerSockets IP/port can't be used
+# (e.g. for traffic through a firewall).
+#
+# WARNING: this is just "dumb" replacing, so you
+# have to take care of your configuration!
+#
+
+#jacorb.ior_proxy_host=1.2.3.4
+#jacorb.ior_proxy_port=4711
+
+
+###########################################
+#                                         #
+#   The Object Adapter Internet Address   #
+#                                         #
+###########################################
+
+# IP address on multi-homed host (this gets encoded in
+# object references). NOTE: Adresses like 127.0.0.X
+# will only be accessible from the same machine!
+#OAIAddr=127.0.0.1
+
+# This are the IIOP ports officially assigned to JBoss by IANA:
+OAPort=3528
+OASSLPort=3529
+
+############################
+#                          #
+#   Default Interceptors   #
+#   Please leave them in!  #
+#                          #
+############################
+org.omg.PortableInterceptor.ORBInitializerClass.standard_init=org.jacorb.orb.standardInterceptors.IORInterceptorInitializer
+
+###############################################
+#                                             #
+#   Implementation Repository Configuration   #
+#                                             #
+###############################################
+# Switch off to avoid contacting the ImR on every server start-up
+jacorb.use_imr=off
+
+# the implementation name, should be set to a different
+# name in the code of persistent servers
+jacorb.implname=JBoss
+
+#########################
+#                       #
+#   SSL Configuration   #
+#                       #
+#########################
+
+# This interceptor must be set if programs need access to
+# certificates using the CORBA Security API, SSL works also
+# without this interceptor
+
+#org.omg.PortableInterceptor.ORBInitializerClass.ForwardInit=org.jacorb.security.ssl.sun_jsse.SecurityServiceInitializer
+
+# qualified classname of access decision object
+#jacorb.security.access_decision=org.jacorb.security.level2.AccessDecisionImpl
+
+# list of qualified classnames of principal authenticator objects,
+# separated by commas (no whitespaces!). The first entry (that can
+# be successfully created) will be available through the
+# principal_authenticator property.
+# jacorb.security.principal_authenticator=org.jacorb.security.level2.PrincipalAuthenticatorImpl
+
+# the qualified classname of the ssl socket factory class
+jacorb.ssl.socket_factory=org.jboss.iiop.jacorb.SSLSocketFactory
+
+# the qualified classname of the ssl server socket factory class
+jacorb.ssl.server_socket_factory=org.jboss.iiop.jacorb.SSLServerSocketFactory
+
+# change to "on" to enable SSL
+jacorb.security.support_ssl=off
+
+# IIOP/SSL parameters (numbers are hex values, without the leading "0x"):
+# EstablishTrustInTarget = 20
+# EstablishTrustInClient = 40
+# mutual authentication = 60
+
+jacorb.security.ssl.client.supported_options=60
+jacorb.security.ssl.client.required_options=0
+
+jacorb.security.ssl.server.supported_options=60
+jacorb.security.ssl.server.required_options=0
+
+#org.omg.PortableInterceptor.ORBInitializerClass.ForwardInit=org.jacorb.security.ssl.sun_jsse.SecurityServiceInitializer
+
+# tell JacORB not to add SSL components to IORs (an IORinterceptor will do it)
+jacorb.security.ssl_components_added_by_ior_interceptor=on
+
+#########################
+#                       #
+#   POA Configuration   #
+#                       #
+#########################
+
+# displays a GUI monitoring tool for servers
+jacorb.poa.monitoring=off
+
+# thread pool configuration for request processing
+jacorb.poa.thread_pool_max=8
+jacorb.poa.thread_pool_min=2
+
+# if set, request processing threads in thePOA
+# will run at this priority. If not set or invalid,
+# MAX_PRIORITY will be used.
+#jacorb.poa.thread_priority=
+
+# Properties controlling the POA's request queue.  If queue_wait is off,
+# then if there are more than queue_max requests in the queue, the
+# client gets TRANSIENT exceptions for any requests.  If queue_wait is on,
+# then the call blocks at the server side until no more than queue_min
+# requests are left in the queue.  The new request is then delivered as usual.
+jacorb.poa.queue_wait=off
+jacorb.poa.queue_max=100
+jacorb.poa.queue_min=10
+
+##################################
+#                                #
+#   Logger Factory Configuration #
+#                                #
+##################################
+
+jacorb.log.loggerFactory=org.jboss.util.Log4jLoggerFactory

Added: jacorb/2.3.0jboss.patch2/resources/orb.idl
===================================================================
--- jacorb/2.3.0jboss.patch2/resources/orb.idl	                        (rev 0)
+++ jacorb/2.3.0jboss.patch2/resources/orb.idl	2007-05-31 08:38:17 UTC (rev 517)
@@ -0,0 +1,177 @@
+
+// Some definitions from the CORBA module as needed
+// by other modules. This file is for declaration
+// purposes only!!
+
+// $Id: orb.idl,v 1.1 2006/08/04 18:22:26 reverbel Exp $
+
+#ifndef _MYORB_IDL
+#define _MYORB_IDL
+
+/*
+  the following pragma is proprietary to JacORB. It ensures
+  that no code is ever generated when this file is included in
+  other files even when the -all compiler option is set
+ */
+
+#pragma inhibit_code_generation
+#pragma prefix "omg.org"
+
+
+module CORBA 
+{
+    typedef unsigned short ServiceOption;
+    typedef unsigned short ServiceDetailType;
+
+    // for PortableInterceptors
+    typedef sequence<string> StringSeq;
+    typedef sequence<wstring> WStringSeq;
+    typedef sequence<octet> OctetSeq;
+
+    typedef unsigned long PolicyType;
+	
+    // actually, Current is pseudo, but we need it this way so everything compiles
+    interface Current {}; 
+
+    pseudo interface Environment{};
+    pseudo interface NamedValue {};
+    pseudo interface NVList {};	
+
+    // not suitable for deriving user-defined interfaces !
+    enum TCKind { 
+	tk_null, tk_void, 
+	tk_short, tk_long, tk_ushort, tk_ulong, 
+	tk_float, tk_double, tk_boolean, tk_char, 
+	tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, 
+	tk_struct, tk_union, tk_enum, tk_string, 
+	tk_sequence, tk_array, tk_alias, tk_except, 
+	tk_longlong, tk_ulonglong, tk_longdouble,
+	tk_wchar, tk_wstring, tk_fixed, tk_value,
+	tk_value_box,
+	tk_native, tk_abstract_interface,
+        tk_local_interface // latest addition
+    };
+    
+    // not suitable for deriving user-defined interfaces
+    typedef string Identifier;
+    typedef string RepositoryId;
+
+    pseudo interface TypeCode { // PIDL
+	exception Bounds {};
+	exception BadKind {};
+	
+	// for all TypeCode kinds
+	boolean equal (in TypeCode tc);
+	TCKind kind ();
+
+	boolean equivalent(in TypeCode tc);
+	TypeCode get_compact_typecode();
+
+	// for tk_objref, tk_struct, tk_union, tk_enum, 
+	// tk_alias, and tk_except
+	RepositoryId id () raises (BadKind);
+	
+	// for tk_objref, tk_struct, tk_union, tk_enum, 
+	// tk_alias, and tk_except
+	Identifier name () raises (BadKind);
+	
+	// for tk_struct, tk_union, tk_enum, and tk_except
+	unsigned long member_count () raises (BadKind);
+	Identifier member_name (in unsigned long index) 
+	    raises (BadKind, Bounds);
+	
+	// for tk_struct, tk_union, and tk_except
+	TypeCode member_type (in unsigned long index) 
+	    raises (BadKind, Bounds);
+	
+	// for tk_union
+	any member_label (in unsigned long index) 
+	    raises (BadKind, Bounds);
+	TypeCode discriminator_type () raises (BadKind);
+	long default_index () raises (BadKind); 
+	
+	// for tk_string, tk_sequence, and tk_array
+	unsigned long length () raises (BadKind);
+	
+	// for tk_sequence, tk_array, and tk_alias
+	TypeCode content_type () raises (BadKind);
+       	
+    };
+
+
+    interface InterfaceDef     {};
+
+    /* this is the original PIDL from the lang. mapping, 
+       but we do not use it! Instead...
+
+    pseudo interface Principal
+    { 
+	attribute sequence<octet> name;
+    };
+    */
+
+    /* ... we use this little hack. It saves us fiddling with 
+       the generated code that uses  Principals. Actually, we 
+       should not be doing this....
+    */
+
+    typedef sequence<octet> Principal;
+
+    interface IDLType {};
+
+    enum OperationMode {OP_NORMAL, OP_ONEWAY};
+    enum ParameterMode {PARAM_IN, PARAM_OUT, PARAM_INOUT};
+
+    struct ParameterDescription {
+	Identifier name; 
+	TypeCode type; 
+	IDLType type_def;
+	ParameterMode mode;
+    };
+    typedef sequence <ParameterDescription> ParDescriptionSeq;
+	
+    interface Policy
+    {
+	readonly attribute PolicyType policy_type;
+	Policy copy();
+	void destroy();
+    };
+	
+    typedef sequence <Policy> PolicyList;
+
+    interface DomainManager
+    {
+	Policy get_domain_policy(in PolicyType policy_type);
+    };
+
+    interface ConstructionPolicy: Policy
+    {
+	void make_domain_manager(in InterfaceDef object_type,
+				 in boolean constr_policy);
+    };
+
+    typedef sequence <DomainManager> DomainManagersList;
+	
+
+    typedef short PolicyErrorCode;
+    const PolicyErrorCode BAD_POLICY = 0;
+    // ... to be continued
+
+    exception PolicyError
+    {
+	PolicyErrorCode reason;
+    };
+
+    exception UserException {};
+    pseudo interface ExceptionList {};
+
+
+    valuetype WStringValue {
+       public wstring value;
+    };
+
+
+};
+
+
+#endif /* _MYORB_IDL */




More information about the jboss-cvs-commits mailing list