[jboss-cvs] Repository SVN: r19540 - in jacorb: 2.3.0jboss.patch6-brew and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Dec 11 13:21:02 EST 2008


Author: permaine
Date: 2008-12-11 13:21:02 -0500 (Thu, 11 Dec 2008)
New Revision: 19540

Added:
   jacorb/2.3.0jboss.patch6-brew/
   jacorb/2.3.0jboss.patch6-brew/component-info.xml
   jacorb/2.3.0jboss.patch6-brew/lib/
   jacorb/2.3.0jboss.patch6-brew/lib/JacORB-2.3.0-src.zip
   jacorb/2.3.0jboss.patch6-brew/lib/idl.jar
   jacorb/2.3.0jboss.patch6-brew/lib/idl_g.jar
   jacorb/2.3.0jboss.patch6-brew/lib/jacorb.jar
   jacorb/2.3.0jboss.patch6-brew/lib/jacorb_g.jar
   jacorb/2.3.0jboss.patch6-brew/resources/
   jacorb/2.3.0jboss.patch6-brew/resources/CSI.idl
   jacorb/2.3.0jboss.patch6-brew/resources/CosTransactions.idl
   jacorb/2.3.0jboss.patch6-brew/resources/jacorb.properties
   jacorb/2.3.0jboss.patch6-brew/resources/orb.idl
   jacorb/2.3.0jboss.patch6-brew/src/
   jacorb/2.3.0jboss.patch6-brew/src/JacORB-2.3.0-src.zip
   jacorb/2.3.0jboss.patch6-brew/src/README
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-CORBA_OBJECT_NOT_EXIST.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-IIOP.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-IIOP_Shutdown.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-JSSE.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-chunk_size.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-notification-build_xml.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-null_value_tag.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-primaddress_port.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-ssl_verification.patch
   jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-version.patch
Log:
Add Brew-build 2.3.0jboss.patch6-brew

Added: jacorb/2.3.0jboss.patch6-brew/component-info.xml
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/component-info.xml	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/component-info.xml	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,34 @@
+<project name="jacorb-component-info">
+
+   <component id="jacorb"
+      licenseType="lgpl"
+      version="2.3.0jboss.patch6-brew"
+      projectHome="http://www.jacorb.org"
+      description="Java implementation of the OMG's CORBA standard."
+      scm=":ext:cvs.devel.redhat.com:/cvs/dist/jacorb"
+      tag="jacorb-2_3_0-1jpp_ep1_7_el4">
+      <!-- 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.patch6-brew/lib/JacORB-2.3.0-src.zip
===================================================================
(Binary files differ)


Property changes on: jacorb/2.3.0jboss.patch6-brew/lib/JacORB-2.3.0-src.zip
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

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


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

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


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

Added: jacorb/2.3.0jboss.patch6-brew/lib/jacorb.jar
===================================================================
(Binary files differ)


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

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


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

Added: jacorb/2.3.0jboss.patch6-brew/resources/CSI.idl
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/resources/CSI.idl	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/resources/CSI.idl	2008-12-11 18:21:02 UTC (rev 19540)
@@ -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.patch6-brew/resources/CosTransactions.idl
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/resources/CosTransactions.idl	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/resources/CosTransactions.idl	2008-12-11 18:21:02 UTC (rev 19540)
@@ -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.patch6-brew/resources/jacorb.properties
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/resources/jacorb.properties	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/resources/jacorb.properties	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,429 @@
+##  $Id: jacorb.properties,v 1.1 2007/05/28 15:58:35 fnasser 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.patch6-brew/resources/orb.idl
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/resources/orb.idl	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/resources/orb.idl	2008-12-11 18:21:02 UTC (rev 19540)
@@ -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 2007/05/28 15:58:35 fnasser 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 */

Added: jacorb/2.3.0jboss.patch6-brew/src/JacORB-2.3.0-src.zip
===================================================================
(Binary files differ)


Property changes on: jacorb/2.3.0jboss.patch6-brew/src/JacORB-2.3.0-src.zip
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: jacorb/2.3.0jboss.patch6-brew/src/README
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/README	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/README	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,83 @@
+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 5), 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 this directory:
+
+cd JacORB
+
+Patch1:         jacorb-2.3.0-version.patch
+# 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. 
+Patch2:         jacorb-2.3.0-chunk_size.patch
+# 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.
+Patch3:         jacorb-2.3.0-null_value_tag.patch
+# 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.
+Patch4:         jacorb-2.3.0-JSSE.patch
+# Fix for bug #783 in JacORB's bugzilla system:
+# Server throws CORBA.INTERNAL (ArrayIndexOutOfBoundsException) when a client
+# uses an IOR with a component tagged with TAG_CSI_SEC_MECH_LIST. When the 
+# current implementation of the method 
+# org.jacorb.orb.iiop.IIOPProfile.getTLSPortFromCSIComponent finds an IOR
+# component that is tagged with TAG_CSI_SEC_MECH_LIST and has a non-empty list
+# of security mechanisms, it assumes that the first mechanism listed has a 
+# transport component tagged with TAG_TLS_SEC_TRANS. It tries to access the 
+# data of the presumed TLS_SEC_TRANS component, without first checking the 
+# component's tag. If this tag is TAG_NULL_TAG rather than TAG_TLS_SEC_TRANS, 
+# then an ArrayIndexOutOfBoundsException occurs.
+Patch5:         jacorb-2.3.0-IIOP.patch
+# Fix for NPE on shutdown
+Patch6:         jacorb-2.3.0-IIOP_Shutdown.patch
+# This patch resets the port of the primary address to zero when an
+# IORInterceptor adds a TAG_CSI_SEC_MECH_LIST component with transport
+# protection requirements (SSL), as it should be per the CSI v2 specification.
+Patch7:         jacorb-2.3.0-primaddress_port.patch
+# The SSL profile check is unnecessary and incorrect, as it should also check
+# for the presence of the TAG_TLS_SEC_TRANS tag in the IIOPProfile.
+# By not doing so, it causes JacORB not to open SSL connections when the
+# server-side IORs contain only the TAG_TLS_SEC_TRANS tag. We can just
+# eliminate this verification since the remaining method body already performs
+# the necessary checks correctly.
+Patch8:         jacorb-2.3.0-ssl_verification.patch
+# JBPAPP-1477 JacORB 2.3.0.jboss5 intermittently hangs during shutdown.
+# Thread dump shows it waiting in RequestController.waitForShutdown(), 
+# presumably beacause it believes there are outstanding requests still 
+# in progress.
+Patch9:         jacorb-2.3.0-CORBA_OBJECT_NOT_EXIST.patch
+
+(3) Build with the following command:
+
+ant -Ddebug=off all doc
+
+(If you want a debug version use just 'ant all doc')

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-CORBA_OBJECT_NOT_EXIST.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-CORBA_OBJECT_NOT_EXIST.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-CORBA_OBJECT_NOT_EXIST.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,11 @@
+--- src/org/jacorb/poa/POA-old.java	2008-12-09 15:18:57.000000000 -0200
++++ src/org/jacorb/poa/POA.java	2008-12-09 15:19:23.000000000 -0200
+@@ -1755,7 +1755,7 @@
+                             "cannot process request, because object is already in the deactivation process");
+             }
+ 
+-            throw new org.omg.CORBA.OBJECT_NOT_EXIST();
++            throw new ObjectNotActive();
+         }
+ 
+         Servant servant = null;

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-IIOP.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-IIOP.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-IIOP.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,1035 @@
+--- src/org/jacorb/orb/iiop/IIOPProfile.java.orig	2006-07-11 14:16:46.000000000 -0400
++++ src/org/jacorb/orb/iiop/IIOPProfile.java	2007-06-01 10:41:14.000000000 -0400
+@@ -1,515 +1,517 @@
+-/*
+- *        JacORB - a free Java ORB
+- *
+- *   Copyright (C) 1997-2004 Gerald Brose.
+- *
+- *   This library is free software; you can redistribute it and/or
+- *   modify it under the terms of the GNU Library General Public
+- *   License as published by the Free Software Foundation; either
+- *   version 2 of the License, or (at your option) any later version.
+- *
+- *   This library is distributed in the hope that it will be useful,
+- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *   Library General Public License for more details.
+- *
+- *   You should have received a copy of the GNU Library General Public
+- *   License along with this library; if not, write to the Free
+- *   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+- */
+-package org.jacorb.orb.iiop;
+-
+-import java.util.*;
+-
+-import org.apache.avalon.framework.configuration.*;
+-import org.apache.avalon.framework.logger.Logger;
+-
+-import org.jacorb.orb.CDRInputStream;
+-import org.jacorb.orb.CDROutputStream;
+-import org.jacorb.orb.TaggedComponentList;
+-import org.jacorb.orb.etf.ProtocolAddressBase;
+-
+-import org.omg.ETF.*;
+-import org.omg.IOP.*;
+-import org.omg.SSLIOP.*;
+-import org.omg.CORBA.INTERNAL;
+-import org.omg.CSIIOP.*;
+-
+-/**
+- * @author Andre Spiegel
+- * @version $Id: IIOPProfile.java,v 1.26 2006/07/11 13:16:45 alphonse.bendt Exp $
+- */
+-public class IIOPProfile
+-    extends org.jacorb.orb.etf.ProfileBase implements Cloneable
+-{
+-    private IIOPAddress          primaryAddress = null;
+-    private Logger logger;
+-
+-    public IIOPProfile()
+-    {
+-        super();
+-    }
+-
+-    public IIOPProfile(byte[] data)
+-    {
+-        this();
+-
+-        initFromProfileData(data);
+-    }
+-
+-    public IIOPProfile(IIOPAddress address, byte[] objectKey, int minor)
+-    {
+-        this();
+-
+-        this.version        = new org.omg.GIOP.Version((byte)1,(byte)minor);
+-        this.primaryAddress = address;
+-        this.objectKey      = objectKey;
+-        this.components     = new TaggedComponentList();
+-    }
+-
+-    public IIOPProfile(IIOPAddress address, byte[] objectKey)
+-    {
+-        this(address, objectKey, 2);
+-    }
+-
+-    /**
+-     * Constructs an IIOPProfile from a corbaloc URL.  Only to be used
+-     * from the corbaloc parser.
+-     */
+-    public IIOPProfile(String corbaloc)
+-    {
+-        this();
+-
+-        this.version = null;
+-        this.primaryAddress = null;
+-        this.objectKey = null;
+-        this.components = null;
+-        this.corbalocStr = corbaloc;
+-    }
+-
+-    public void configure(Configuration config)
+-        throws ConfigurationException
+-    {
+-        configuration = (org.jacorb.config.Configuration)config;
+-        logger = configuration.getNamedLogger("jacorb.iiop.profile");
+-        if (primaryAddress != null)
+-        {
+-            primaryAddress.configure(config);
+-        }
+-
+-        if (corbalocStr != null)
+-        {
+-            try
+-            {
+-                decode_corbaloc(corbalocStr);
+-            }
+-            catch(Exception e)
+-            {
+-                logger.debug("unable to decode_corbaloc", e);
+-            }
+-        }
+-    }
+-
+-    /**
+-     * An IPv6 corbaloc URL is of the format
+-     * corbaloc:iiop:[fe80:5443::3333%3]:2809/my_object
+-     * where the zone ID seperator is / or % depending on
+-     * what the underlying OS supports.
+-     *
+-     * This preserves compatilibility with TAO, and falls in
+-     * line with RFC 2732 and discussion on OMG news groups.
+-     */
+-    private void decode_corbaloc(final String address)
+-    {
+-        String addr = address;
+-        String host = "127.0.0.1"; //default to localhost
+-        short port = 2809; // default IIOP port
+-
+-        int major = 1; // should be 1 by default. see 13.6.10.3
+-        int minor = 0; // should be 0 by default. see 13.6.10.3
+-
+-        String errorstr =
+-            "Illegal IIOP protocol format in object address format: " + addr;
+-
+-        int sep = addr.indexOf(':');
+-
+-        String protocol_identifier = "";
+-        if( sep != 0)
+-        {
+-            protocol_identifier = addr.substring(0, sep);
+-        }
+-        if( sep + 1 == addr.length())
+-        {
+-            throw new IllegalArgumentException(errorstr);
+-        }
+-        addr = addr.substring(sep + 1);
+-        // decode optional version number
+-        sep = addr.indexOf( '@' );
+-        if( sep > -1)
+-        {
+-            String ver_str =  addr.substring(0,sep);
+-            addr = addr.substring(sep+1);
+-            sep = ver_str.indexOf('.');
+-            if( sep != -1 )
+-            {
+-                try
+-                {
+-                    major = Integer.parseInt(ver_str.substring(0,sep));
+-                    minor = Integer.parseInt(ver_str.substring(sep+1));
+-                }
+-                catch( NumberFormatException nfe )
+-                {
+-                    throw new IllegalArgumentException(errorstr);
+-                }
+-            }
+-        }
+-        version = new org.omg.GIOP.Version((byte)major,(byte)minor);
+-
+-        int ipv6SeperatorStart = -1;
+-        int ipv6SeperatorEnd = -1;
+-        ipv6SeperatorStart = addr.indexOf('[');
+-        if (ipv6SeperatorStart != -1)
+-        {
+-            ipv6SeperatorEnd = addr.indexOf(']');
+-            if (ipv6SeperatorEnd == -1)
+-            {
+-                throw new IllegalArgumentException(errorstr);
+-            }
+-        }
+-
+-        sep = addr.indexOf(':');
+-        if( sep != -1 )
+-        {
+-            if (ipv6SeperatorStart != -1) //IPv6
+-            {
+-                host=addr.substring(ipv6SeperatorStart + 1, ipv6SeperatorEnd);
+-                if (addr.charAt(ipv6SeperatorEnd+1) == ':')
+-                {
+-                    port=(short)Integer.parseInt(addr.substring(ipv6SeperatorEnd+2));
+-                }
+-                else
+-                {
+-                    throw new IllegalArgumentException(errorstr);
+-                }
+-            }
+-            else //IPv4 or hostname
+-            {
+-                try
+-                {
+-                    port =(short)Integer.parseInt(addr.substring(sep+1));
+-                    host = addr.substring(0, sep);
+-                }
+-                catch( NumberFormatException ill )
+-                {
+-                    throw new IllegalArgumentException(errorstr);
+-                }
+-            }
+-        }
+-        primaryAddress = new IIOPAddress(host,port);
+-
+-        try
+-        {
+-            primaryAddress.configure(configuration);
+-        }
+-        catch( ConfigurationException ce)
+-        {
+-            logger.warn("ConfigurationException", ce );
+-        }
+-        decode_extensions(protocol_identifier.toLowerCase());
+-    }
+-
+-    private void decode_extensions(String ident)
+-    {
+-        this.components = new TaggedComponentList();
+-        if (ident.equals("ssliop"))
+-        {
+-            SSL ssl = new SSL();
+-            ssl.port = (short)primaryAddress.getPort();
+-            String propname =
+-                "jacorb.security.ssl.corbaloc_ssliop.supported_options";
+-            ssl.target_supports = get_ssl_options(propname);
+-            propname =
+-                "jacorb.security.ssl.corbaloc_ssliop.required_options";
+-            ssl.target_requires = get_ssl_options(propname);
+-
+-            //create the tagged component containing the ssl struct
+-            final CDROutputStream out = new CDROutputStream();
+-            try
+-            {
+-                out.beginEncapsulatedArray();
+-                SSLHelper.write( out, ssl );
+-
+-                // TAG_SSL_SEC_TRANS must be disambiguated in case OpenORB-generated
+-                // OMG classes are in the classpath.
+-                components.addComponent
+-                (new TaggedComponent( org.omg.SSLIOP.TAG_SSL_SEC_TRANS.value,
+-                        out.getBufferCopy() )
+-                );
+-            }
+-            finally
+-            {
+-                out.close();
+-            }
+-        }
+-    }
+-
+-    private short get_ssl_options(String propname)
+-    {
+-        //For the time being, we only use EstablishTrustInTarget,
+-        //because we don't handle any of the other options anyway.
+-        // So this makes a reasonable default.
+-
+-        short value =
+-            (short)configuration.getAttributeAsInteger(propname,EstablishTrustInTarget.value);
+-        return value;
+-    }
+-
+-
+-    /**
+-    * Writes the bytes that would make up the ETF::AddressProfile bytes (new spec)
+-    * to a stream.
+-    * <p>
+-    * Writes GIOP version, host string, and port.
+-    */
+-    public void writeAddressProfile(CDROutputStream addressProfileStream)
+-    {
+-        org.omg.GIOP.VersionHelper.write( addressProfileStream, version);
+-        primaryAddress.write (addressProfileStream);
+-    }
+-
+-    /**
+-    * Reads the bytes that make up the ETF::AddressProfile bytes (new spec)
+-    * from a stream.
+-    * <p>
+-    * Writes GIOP version, host string, and port.
+-    */
+-    public void readAddressProfile(CDRInputStream addressProfileStream)
+-    {
+-        this.version = org.omg.GIOP.VersionHelper.read(addressProfileStream);
+-        this.primaryAddress = IIOPAddress.read(addressProfileStream);
+-        if (configuration != null)
+-        {
+-            try
+-            {
+-                primaryAddress.configure(configuration);
+-            }
+-            catch( ConfigurationException ce)
+-            {
+-                logger.warn("ConfigurationException", ce );
+-            }
+-        }
+-    }
+-
+-    /**
+-     * To improve the management of a large set of profile instances,
+-     * the author may provide a hash function using the data in a Profile
+-     * instance. The Profile shall always implement this function and either
+-     * return a hash number, or 0 (zero) if no hashing is supported.
+-     */
+-    public int hash()
+-    {
+-        return hashCode();
+-    }
+-
+-    public Object clone() throws CloneNotSupportedException
+-    {
+-        IIOPProfile result = (IIOPProfile)super.clone();  // bitwise copy
+-
+-        result.primaryAddress = new IIOPAddress(primaryAddress.getHostname(),
+-                                                primaryAddress.getPort());
+-
+-        if (configuration != null)
+-        {
+-            try
+-            {
+-                result.primaryAddress.configure(configuration);
+-            }
+-            catch( ConfigurationException ce)
+-            {
+-                logger.warn("ConfigurationException", ce );
+-            }
+-        }
+-
+-        result.version = new org.omg.GIOP.Version(this.version.major,
+-                                                   this.version.minor);
+-
+-        if (this.objectKey != null)
+-        {
+-            result.objectKey = new byte [this.objectKey.length];
+-            System.arraycopy(this.objectKey, 0, result.objectKey, 0,
+-                              this.objectKey.length);
+-        }
+-
+-        if (this.components != null)
+-        {
+-            result.components = (TaggedComponentList)this.components.clone();
+-        }
+-
+-        return result;
+-    }
+-
+-    /**
+-     * This function shall determine if the passed profile, prof, is a match
+-     * to this profile.  The specifics of the match are left to the details
+-     * of the underlying transport, however profiles shall be considered a
+-     * match, if they would create connections that share the same attributes
+-     * relevant to the transport setup.  Among others, this could include
+-     * address information (eg. host address) and transport layer
+-     * characteristics (eg. encryption levels). If a match is found, it
+-     * shall return true, or false otherwise.
+-     */
+-    public boolean is_match(Profile prof)
+-    {
+-        if (prof == null)
+-        {
+-            return false;
+-        }
+-
+-        if (prof instanceof IIOPProfile)
+-        {
+-            IIOPProfile other = (IIOPProfile)prof;
+-            return
+-            (
+-                this.getSSLPort() == other.getSSLPort()           &&
+-                this.primaryAddress.equals (other.primaryAddress) &&
+-                this.getAlternateAddresses().equals(other.getAlternateAddresses())
+-            );
+-        }
+-
+-        return false;
+-    }
+-
+-    public int tag()
+-    {
+-        return TAG_INTERNET_IOP.value;
+-    }
+-
+-    public ProtocolAddressBase getAddress()
+-    {
+-        return primaryAddress;
+-    }
+-
+-    /**
+-     * Replaces the host in this profile's primary address with newHost
+-     * (if it is not null), and the port with newPort (if it is not -1).
+-     */
+-    public void patchPrimaryAddress(ProtocolAddressBase replacement)
+-    {
+-        if (replacement instanceof IIOPAddress)
+-        {
+-            primaryAddress.replaceFrom((IIOPAddress)replacement);
+-        }
+-    }
+-
+-    public List getAlternateAddresses()
+-    {
+-        return components.getComponents(TAG_ALTERNATE_IIOP_ADDRESS.value,
+-                                        IIOPAddress.class);
+-    }
+-
+-    public SSL getSSL()
+-    {
+-        // TAG_SSL_SEC_TRANS must be disambiguated in case OpenORB-generated
+-        // OMG classes are in the classpath.
+-        return (SSL)components.getComponent( org.omg.SSLIOP.TAG_SSL_SEC_TRANS.value,
+-                                             SSLHelper.class );
+-    }
+-
+-    /**
+-     * If there is a component tagged with TAG_CSI_SEC_MECH_LIST,
+-     * get the SSL port from this component. Return the SSL port in the
+-     * TAG_TLS_SEC_TRANS component encapsulated into the transport_mech
+-     * field of the first CompoundSecMech of the CSI_SEC_MECH_LIST.
+-     * Return -1 if there is no component tagged with TAG_CSI_SEC_MECH_LIST
+-     * or if this component specifies no SSL port.
+-     */
+-    public int getTLSPortFromCSIComponent()
+-    {
+-        CompoundSecMechList csmList =
+-            (CompoundSecMechList)components.getComponent(
+-                                            TAG_CSI_SEC_MECH_LIST.value,
+-                                            CompoundSecMechListHelper.class);
+-        if (csmList != null && csmList.mechanism_list.length > 0)
+-        {
+-            byte[] tlsSecTransData =
+-                csmList.mechanism_list[0].transport_mech.component_data;
+-            CDRInputStream in =
+-                new CDRInputStream((org.omg.CORBA.ORB)null, tlsSecTransData);
+-            try
+-            {
+-                in.openEncapsulatedArray();
+-                TLS_SEC_TRANS tls = TLS_SEC_TRANSHelper.read(in);
+-                if (tls.addresses.length > 0)
+-                {
+-                    int ssl_port = tls.addresses[0].port;
+-                    if (ssl_port != 0)
+-                    {
+-                        if (ssl_port < 0)
+-                        {
+-                            ssl_port += 65536;
+-                        }
+-                        return ssl_port;
+-                    }
+-                }
+-            }
+-            catch ( Exception ex )
+-            {
+-                logger.debug("unexpected exception", ex);
+-                throw new INTERNAL(ex.toString());
+-            }
+-        }
+-        return -1;
+-
+-    }
+-
+-    /**
+-     * Returns the port on which SSL is available according to this profile,
+-     * or -1 if SSL is not supported.
+-     */
+-    public int getSSLPort()
+-    {
+-        SSL ssl = getSSL();
+-        if (ssl == null)
+-        {
+-            return getTLSPortFromCSIComponent();
+-        }
+-
+-        int port = ssl.port;
+-        if (port < 0)
+-        {
+-            port += 65536;
+-        }
+-        return port;
+-    }
+-
+-    /**
+-     * Returns a copy of this profile that is compatible with GIOP 1.0.
+-     */
+-    public IIOPProfile to_GIOP_1_0()
+-    {
+-        IIOPProfile result = new IIOPProfile(this.primaryAddress,
+-                                              this.objectKey);
+-        result.version.minor = 0;
+-        return result;
+-    }
+-
+-    public boolean equals(Object other)
+-    {
+-        if (other instanceof org.omg.ETF.Profile)
+-        {
+-            return this.is_match((org.omg.ETF.Profile)other);
+-        }
+-
+-        return false;
+-    }
+-
+-    public int hashCode()
+-    {
+-        return primaryAddress.hashCode();
+-    }
+-
+-    public String toString()
+-    {
+-        return primaryAddress.toString();
+-    }
+-}
++/*
++ *        JacORB - a free Java ORB
++ *
++ *   Copyright (C) 1997-2004 Gerald Brose.
++ *
++ *   This library is free software; you can redistribute it and/or
++ *   modify it under the terms of the GNU Library General Public
++ *   License as published by the Free Software Foundation; either
++ *   version 2 of the License, or (at your option) any later version.
++ *
++ *   This library is distributed in the hope that it will be useful,
++ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *   Library General Public License for more details.
++ *
++ *   You should have received a copy of the GNU Library General Public
++ *   License along with this library; if not, write to the Free
++ *   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++package org.jacorb.orb.iiop;
++
++import java.util.*;
++
++import org.apache.avalon.framework.configuration.*;
++import org.apache.avalon.framework.logger.Logger;
++
++import org.jacorb.orb.CDRInputStream;
++import org.jacorb.orb.CDROutputStream;
++import org.jacorb.orb.TaggedComponentList;
++import org.jacorb.orb.etf.ProtocolAddressBase;
++
++import org.omg.ETF.*;
++import org.omg.IOP.*;
++import org.omg.SSLIOP.*;
++import org.omg.CORBA.INTERNAL;
++import org.omg.CSIIOP.*;
++
++/**
++ * @author Andre Spiegel
++ * @version $Id: IIOPProfile.java,v 1.27 2007/06/01 02:27:13 francisco Exp $
++ */
++public class IIOPProfile
++    extends org.jacorb.orb.etf.ProfileBase implements Cloneable
++{
++    private IIOPAddress          primaryAddress = null;
++    private Logger logger;
++
++    public IIOPProfile()
++    {
++        super();
++    }
++
++    public IIOPProfile(byte[] data)
++    {
++        this();
++
++        initFromProfileData(data);
++    }
++
++    public IIOPProfile(IIOPAddress address, byte[] objectKey, int minor)
++    {
++        this();
++
++        this.version        = new org.omg.GIOP.Version((byte)1,(byte)minor);
++        this.primaryAddress = address;
++        this.objectKey      = objectKey;
++        this.components     = new TaggedComponentList();
++    }
++
++    public IIOPProfile(IIOPAddress address, byte[] objectKey)
++    {
++        this(address, objectKey, 2);
++    }
++
++    /**
++     * Constructs an IIOPProfile from a corbaloc URL.  Only to be used
++     * from the corbaloc parser.
++     */
++    public IIOPProfile(String corbaloc)
++    {
++        this();
++
++        this.version = null;
++        this.primaryAddress = null;
++        this.objectKey = null;
++        this.components = null;
++        this.corbalocStr = corbaloc;
++    }
++
++    public void configure(Configuration config)
++        throws ConfigurationException
++    {
++        configuration = (org.jacorb.config.Configuration)config;
++        logger = configuration.getNamedLogger("jacorb.iiop.profile");
++        if (primaryAddress != null)
++        {
++            primaryAddress.configure(config);
++        }
++
++        if (corbalocStr != null)
++        {
++            try
++            {
++                decode_corbaloc(corbalocStr);
++            }
++            catch(Exception e)
++            {
++                logger.debug("unable to decode_corbaloc", e);
++            }
++        }
++    }
++
++    /**
++     * An IPv6 corbaloc URL is of the format
++     * corbaloc:iiop:[fe80:5443::3333%3]:2809/my_object
++     * where the zone ID seperator is / or % depending on
++     * what the underlying OS supports.
++     *
++     * This preserves compatilibility with TAO, and falls in
++     * line with RFC 2732 and discussion on OMG news groups.
++     */
++    private void decode_corbaloc(final String address)
++    {
++        String addr = address;
++        String host = "127.0.0.1"; //default to localhost
++        short port = 2809; // default IIOP port
++
++        int major = 1; // should be 1 by default. see 13.6.10.3
++        int minor = 0; // should be 0 by default. see 13.6.10.3
++
++        String errorstr =
++            "Illegal IIOP protocol format in object address format: " + addr;
++
++        int sep = addr.indexOf(':');
++
++        String protocol_identifier = "";
++        if( sep != 0)
++        {
++            protocol_identifier = addr.substring(0, sep);
++        }
++        if( sep + 1 == addr.length())
++        {
++            throw new IllegalArgumentException(errorstr);
++        }
++        addr = addr.substring(sep + 1);
++        // decode optional version number
++        sep = addr.indexOf( '@' );
++        if( sep > -1)
++        {
++            String ver_str =  addr.substring(0,sep);
++            addr = addr.substring(sep+1);
++            sep = ver_str.indexOf('.');
++            if( sep != -1 )
++            {
++                try
++                {
++                    major = Integer.parseInt(ver_str.substring(0,sep));
++                    minor = Integer.parseInt(ver_str.substring(sep+1));
++                }
++                catch( NumberFormatException nfe )
++                {
++                    throw new IllegalArgumentException(errorstr);
++                }
++            }
++        }
++        version = new org.omg.GIOP.Version((byte)major,(byte)minor);
++
++        int ipv6SeperatorStart = -1;
++        int ipv6SeperatorEnd = -1;
++        ipv6SeperatorStart = addr.indexOf('[');
++        if (ipv6SeperatorStart != -1)
++        {
++            ipv6SeperatorEnd = addr.indexOf(']');
++            if (ipv6SeperatorEnd == -1)
++            {
++                throw new IllegalArgumentException(errorstr);
++            }
++        }
++
++        sep = addr.indexOf(':');
++        if( sep != -1 )
++        {
++            if (ipv6SeperatorStart != -1) //IPv6
++            {
++                host=addr.substring(ipv6SeperatorStart + 1, ipv6SeperatorEnd);
++                if (addr.charAt(ipv6SeperatorEnd+1) == ':')
++                {
++                    port=(short)Integer.parseInt(addr.substring(ipv6SeperatorEnd+2));
++                }
++                else
++                {
++                    throw new IllegalArgumentException(errorstr);
++                }
++            }
++            else //IPv4 or hostname
++            {
++                try
++                {
++                    port =(short)Integer.parseInt(addr.substring(sep+1));
++                    host = addr.substring(0, sep);
++                }
++                catch( NumberFormatException ill )
++                {
++                    throw new IllegalArgumentException(errorstr);
++                }
++            }
++        }
++        primaryAddress = new IIOPAddress(host,port);
++
++        try
++        {
++            primaryAddress.configure(configuration);
++        }
++        catch( ConfigurationException ce)
++        {
++            logger.warn("ConfigurationException", ce );
++        }
++        decode_extensions(protocol_identifier.toLowerCase());
++    }
++
++    private void decode_extensions(String ident)
++    {
++        this.components = new TaggedComponentList();
++        if (ident.equals("ssliop"))
++        {
++            SSL ssl = new SSL();
++            ssl.port = (short)primaryAddress.getPort();
++            String propname =
++                "jacorb.security.ssl.corbaloc_ssliop.supported_options";
++            ssl.target_supports = get_ssl_options(propname);
++            propname =
++                "jacorb.security.ssl.corbaloc_ssliop.required_options";
++            ssl.target_requires = get_ssl_options(propname);
++
++            //create the tagged component containing the ssl struct
++            final CDROutputStream out = new CDROutputStream();
++            try
++            {
++                out.beginEncapsulatedArray();
++                SSLHelper.write( out, ssl );
++
++                // TAG_SSL_SEC_TRANS must be disambiguated in case OpenORB-generated
++                // OMG classes are in the classpath.
++                components.addComponent
++                (new TaggedComponent( org.omg.SSLIOP.TAG_SSL_SEC_TRANS.value,
++                        out.getBufferCopy() )
++                );
++            }
++            finally
++            {
++                out.close();
++            }
++        }
++    }
++
++    private short get_ssl_options(String propname)
++    {
++        //For the time being, we only use EstablishTrustInTarget,
++        //because we don't handle any of the other options anyway.
++        // So this makes a reasonable default.
++
++        short value =
++            (short)configuration.getAttributeAsInteger(propname,EstablishTrustInTarget.value);
++        return value;
++    }
++
++
++    /**
++    * Writes the bytes that would make up the ETF::AddressProfile bytes (new spec)
++    * to a stream.
++    * <p>
++    * Writes GIOP version, host string, and port.
++    */
++    public void writeAddressProfile(CDROutputStream addressProfileStream)
++    {
++        org.omg.GIOP.VersionHelper.write( addressProfileStream, version);
++        primaryAddress.write (addressProfileStream);
++    }
++
++    /**
++    * Reads the bytes that make up the ETF::AddressProfile bytes (new spec)
++    * from a stream.
++    * <p>
++    * Writes GIOP version, host string, and port.
++    */
++    public void readAddressProfile(CDRInputStream addressProfileStream)
++    {
++        this.version = org.omg.GIOP.VersionHelper.read(addressProfileStream);
++        this.primaryAddress = IIOPAddress.read(addressProfileStream);
++        if (configuration != null)
++        {
++            try
++            {
++                primaryAddress.configure(configuration);
++            }
++            catch( ConfigurationException ce)
++            {
++                logger.warn("ConfigurationException", ce );
++            }
++        }
++    }
++
++    /**
++     * To improve the management of a large set of profile instances,
++     * the author may provide a hash function using the data in a Profile
++     * instance. The Profile shall always implement this function and either
++     * return a hash number, or 0 (zero) if no hashing is supported.
++     */
++    public int hash()
++    {
++        return hashCode();
++    }
++
++    public Object clone() throws CloneNotSupportedException
++    {
++        IIOPProfile result = (IIOPProfile)super.clone();  // bitwise copy
++
++        result.primaryAddress = new IIOPAddress(primaryAddress.getHostname(),
++                                                primaryAddress.getPort());
++
++        if (configuration != null)
++        {
++            try
++            {
++                result.primaryAddress.configure(configuration);
++            }
++            catch( ConfigurationException ce)
++            {
++                logger.warn("ConfigurationException", ce );
++            }
++        }
++
++        result.version = new org.omg.GIOP.Version(this.version.major,
++                                                   this.version.minor);
++
++        if (this.objectKey != null)
++        {
++            result.objectKey = new byte [this.objectKey.length];
++            System.arraycopy(this.objectKey, 0, result.objectKey, 0,
++                              this.objectKey.length);
++        }
++
++        if (this.components != null)
++        {
++            result.components = (TaggedComponentList)this.components.clone();
++        }
++
++        return result;
++    }
++
++    /**
++     * This function shall determine if the passed profile, prof, is a match
++     * to this profile.  The specifics of the match are left to the details
++     * of the underlying transport, however profiles shall be considered a
++     * match, if they would create connections that share the same attributes
++     * relevant to the transport setup.  Among others, this could include
++     * address information (eg. host address) and transport layer
++     * characteristics (eg. encryption levels). If a match is found, it
++     * shall return true, or false otherwise.
++     */
++    public boolean is_match(Profile prof)
++    {
++        if (prof == null)
++        {
++            return false;
++        }
++
++        if (prof instanceof IIOPProfile)
++        {
++            IIOPProfile other = (IIOPProfile)prof;
++            return
++            (
++                this.getSSLPort() == other.getSSLPort()           &&
++                this.primaryAddress.equals (other.primaryAddress) &&
++                this.getAlternateAddresses().equals(other.getAlternateAddresses())
++            );
++        }
++
++        return false;
++    }
++
++    public int tag()
++    {
++        return TAG_INTERNET_IOP.value;
++    }
++
++    public ProtocolAddressBase getAddress()
++    {
++        return primaryAddress;
++    }
++
++    /**
++     * Replaces the host in this profile's primary address with newHost
++     * (if it is not null), and the port with newPort (if it is not -1).
++     */
++    public void patchPrimaryAddress(ProtocolAddressBase replacement)
++    {
++        if (replacement instanceof IIOPAddress)
++        {
++            primaryAddress.replaceFrom((IIOPAddress)replacement);
++        }
++    }
++
++    public List getAlternateAddresses()
++    {
++        return components.getComponents(TAG_ALTERNATE_IIOP_ADDRESS.value,
++                                        IIOPAddress.class);
++    }
++
++    public SSL getSSL()
++    {
++        // TAG_SSL_SEC_TRANS must be disambiguated in case OpenORB-generated
++        // OMG classes are in the classpath.
++        return (SSL)components.getComponent( org.omg.SSLIOP.TAG_SSL_SEC_TRANS.value,
++                                             SSLHelper.class );
++    }
++
++    /**
++     * If there is a component tagged with TAG_CSI_SEC_MECH_LIST,
++     * get the SSL port from this component. Return the SSL port in the
++     * TAG_TLS_SEC_TRANS component encapsulated into the transport_mech
++     * field of the first CompoundSecMech of the CSI_SEC_MECH_LIST.
++     * Return -1 if there is no component tagged with TAG_CSI_SEC_MECH_LIST
++     * or if this component specifies no SSL port.
++     */
++    public int getTLSPortFromCSIComponent()
++    {
++        CompoundSecMechList csmList =
++            (CompoundSecMechList)components.getComponent(
++                                            TAG_CSI_SEC_MECH_LIST.value,
++                                            CompoundSecMechListHelper.class);
++        if (csmList != null && csmList.mechanism_list.length > 0 &&
++                csmList.mechanism_list[0].transport_mech.tag == 
++                                                    TAG_TLS_SEC_TRANS.value)
++        {
++            byte[] tlsSecTransData =
++                csmList.mechanism_list[0].transport_mech.component_data;
++            CDRInputStream in =
++                new CDRInputStream((org.omg.CORBA.ORB)null, tlsSecTransData);
++            try
++            {
++                in.openEncapsulatedArray();
++                TLS_SEC_TRANS tls = TLS_SEC_TRANSHelper.read(in);
++                if (tls.addresses.length > 0)
++                {
++                    int ssl_port = tls.addresses[0].port;
++                    if (ssl_port != 0)
++                    {
++                        if (ssl_port < 0)
++                        {
++                            ssl_port += 65536;
++                        }
++                        return ssl_port;
++                    }
++                }
++            }
++            catch ( Exception ex )
++            {
++                logger.debug("unexpected exception", ex);
++                throw new INTERNAL(ex.toString());
++            }
++        }
++        return -1;
++
++    }
++
++    /**
++     * Returns the port on which SSL is available according to this profile,
++     * or -1 if SSL is not supported.
++     */
++    public int getSSLPort()
++    {
++        SSL ssl = getSSL();
++        if (ssl == null)
++        {
++            return getTLSPortFromCSIComponent();
++        }
++
++        int port = ssl.port;
++        if (port < 0)
++        {
++            port += 65536;
++        }
++        return port;
++    }
++
++    /**
++     * Returns a copy of this profile that is compatible with GIOP 1.0.
++     */
++    public IIOPProfile to_GIOP_1_0()
++    {
++        IIOPProfile result = new IIOPProfile(this.primaryAddress,
++                                              this.objectKey);
++        result.version.minor = 0;
++        return result;
++    }
++
++    public boolean equals(Object other)
++    {
++        if (other instanceof org.omg.ETF.Profile)
++        {
++            return this.is_match((org.omg.ETF.Profile)other);
++        }
++
++        return false;
++    }
++
++    public int hashCode()
++    {
++        return primaryAddress.hashCode();
++    }
++
++    public String toString()
++    {
++        return primaryAddress.toString();
++    }
++}

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-IIOP_Shutdown.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-IIOP_Shutdown.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-IIOP_Shutdown.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,17 @@
+--- src/org/jacorb/orb/iiop/IIOPListener.java.orig	2006-07-19 12:25:46.000000000 -0300
++++ src/org/jacorb/orb/iiop/IIOPListener.java	2007-06-06 17:40:50.000000000 -0300
+@@ -805,6 +805,14 @@
+         {
+             final IIOPLoopbackConnection connection =
+                 new IIOPLoopbackConnection(lis, los) ;
++            try
++            {
++                connection.configure(configuration);
++            }
++            catch( ConfigurationException ce )
++            {
++                throw new org.omg.CORBA.INTERNAL("ConfigurationException: " + ce.toString());
++            }
+             deliverConnection(connection);
+         }
+ 

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-JSSE.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-JSSE.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-JSSE.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,300 @@
+--- src/org/jacorb/security/ssl/sun_jsse/JSSEUtil.java.orig	2007-05-31 09:52:27.000000000 -0400
++++ src/org/jacorb/security/ssl/sun_jsse/JSSEUtil.java	2007-05-31 09:52:43.000000000 -0400
+@@ -1,142 +1,155 @@
+-package org.jacorb.security.ssl.sun_jsse;
+-
+-import java.lang.reflect.InvocationTargetException;
+-import java.lang.reflect.Method;
+-import java.security.Provider;
+-import java.security.Security;
+-
+-import javax.net.ssl.SSLServerSocket;
+-import javax.net.ssl.SSLSocket;
+-
+-/*
+- *        JacORB - a free Java ORB
+- *
+- *   Copyright (C) 2000-2006 Gerald Brose
+- *
+- *   This library is free software; you can redistribute it and/or
+- *   modify it under the terms of the GNU Library General Public
+- *   License as published by the Free Software Foundation; either
+- *   version 2 of the License, or (at your option) any later version.
+- *
+- *   This library is distributed in the hope that it will be useful,
+- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *   Library General Public License for more details.
+- *
+- *   You should have received a copy of the GNU Library General Public
+- *   License along with this library; if not, write to the Free
+- *   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+- */
+-
+-/**
+- * compatibility wrapper class that allows to
+- * 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 $
+- */
+-public class JSSEUtil
+-{
+-    private static final boolean isJDK14;
+-
+-    static
+-    {
+-        boolean result;
+-        try
+-        {
+-            Class clazz = Class.forName("javax.net.ssl.SSLSocket");
+-            clazz.getMethod("setEnabledProtocols", new Class[] {String[].class});
+-            result = true;
+-        }
+-        catch(Exception e)
+-        {
+-            result = false;
+-        }
+-        isJDK14 = result;
+-    }
+-
+-    public static void setEnabledProtocols(SSLSocket socket, String[] enabledProtocols)
+-    {
+-        _setEnabledProtocols(socket, enabledProtocols);
+-    }
+-
+-    public static void setEnabledProtocols(SSLServerSocket socket, String[] enabledProtocols)
+-    {
+-        _setEnabledProtocols(socket, enabledProtocols);
+-    }
+-
+-    private static void _setEnabledProtocols(Object socket, String[] enabledProtocols)
+-    {
+-        if (!isJDK14)
+-        {
+-            // method does not exist in pre JDK 1.4 JSSE
+-            return;
+-        }
+-
+-        try
+-        {
+-            Method method = socket.getClass().getMethod("setEnabledProtocols", new Class[] {enabledProtocols.getClass()});
+-            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());
+-        }
+-    }
+-
+-    public static void registerSecurityProvider()
+-    {
+-        if (isJDK14)
+-        {
+-            return;
+-        }
+-
+-        try
+-        {
+-            Class clazz = Class.forName("com.sun.net.ssl.internal.ssl.Provider");
+-            Security.addProvider((Provider) clazz.newInstance() );
+-        }
+-        catch (Exception e)
+-        {
+-            throw new RuntimeException(e.toString());
+-        }
+-    }
+-
+-    public static boolean isJDK14()
+-    {
+-        return isJDK14;
+-    }
+-
+-    public static boolean wantClientAuth(boolean request_mutual_auth, boolean require_mutual_auth)
+-    {
+-        if (isJDK14)
+-        {
+-            return request_mutual_auth;
+-        }
+-
+-        return request_mutual_auth && !require_mutual_auth;
+-    }
+-
+-    public static void setWantClientAuth(SSLServerSocket s, boolean request_mutual_auth)
+-    {
+-        if (!isJDK14)
+-        {
+-            throw new RuntimeException("Request mutual authentication not supported with JSSE 1.0.x");
+-        }
+-
+-        try
+-        {
+-            Method method = s.getClass().getMethod("setWantClientAuth", new Class[] {Boolean.TYPE});
+-            method.invoke(s, new Object[] {Boolean.valueOf(request_mutual_auth)});
+-        }
+-        catch(Exception e)
+-        {
+-            throw new RuntimeException(e.toString());
+-        }
+-    }
+-}
++package org.jacorb.security.ssl.sun_jsse;
++
++import java.lang.reflect.InvocationTargetException;
++import java.lang.reflect.Method;
++import java.security.Provider;
++import java.security.Security;
++
++import javax.net.ssl.SSLServerSocket;
++import javax.net.ssl.SSLSocket;
++
++/*
++ *        JacORB - a free Java ORB
++ *
++ *   Copyright (C) 2000-2006 Gerald Brose
++ *
++ *   This library is free software; you can redistribute it and/or
++ *   modify it under the terms of the GNU Library General Public
++ *   License as published by the Free Software Foundation; either
++ *   version 2 of the License, or (at your option) any later version.
++ *
++ *   This library is distributed in the hope that it will be useful,
++ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *   Library General Public License for more details.
++ *
++ *   You should have received a copy of the GNU Library General Public
++ *   License along with this library; if not, write to the Free
++ *   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++/**
++ * compatibility wrapper class that allows to
++ * use the JSSE included with JDK1.4 or standalone version 1.0.x
++ *
++ * @author Alphonse Bendt
++ * @version $Id: JSSEUtil.java,v 1.2 2007/05/30 22:55:28 francisco Exp $
++ */
++public class JSSEUtil
++{
++    private static final boolean isJDK14;
++
++    static
++    {
++        boolean result;
++        try
++        {
++            SSLSocket.class.getMethod("setEnabledProtocols", new Class[] {String[].class});
++            result = true;
++        }
++        catch(Exception e)
++        {
++            result = false;
++        }
++        isJDK14 = result;
++    }
++
++    public static void setEnabledProtocols(SSLSocket socket, String[] enabledProtocols)
++    {
++        if (!isJDK14)
++        {
++            // method does not exist in pre JDK 1.4 JSSE
++            return;
++        }
++
++        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());
++        }
++    }
++
++    public static void setEnabledProtocols(SSLServerSocket socket, String[] enabledProtocols)
++    {
++        if (!isJDK14)
++        {
++            // method does not exist in pre JDK 1.4 JSSE
++            return;
++        }
++
++        try
++        {
++            Method method = SSLServerSocket.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());
++        }
++    }
++
++    public static void registerSecurityProvider()
++    {
++        if (isJDK14)
++        {
++            return;
++        }
++
++        try
++        {
++            Class clazz = Class.forName("com.sun.net.ssl.internal.ssl.Provider");
++            Security.addProvider((Provider) clazz.newInstance() );
++        }
++        catch (Exception e)
++        {
++            throw new RuntimeException(e.toString());
++        }
++    }
++
++    public static boolean isJDK14()
++    {
++        return isJDK14;
++    }
++
++    public static boolean wantClientAuth(boolean request_mutual_auth, boolean require_mutual_auth)
++    {
++        if (isJDK14)
++        {
++            return request_mutual_auth;
++        }
++
++        return request_mutual_auth && !require_mutual_auth;
++    }
++
++    public static void setWantClientAuth(SSLServerSocket s, boolean request_mutual_auth)
++    {
++        if (!isJDK14)
++        {
++            throw new RuntimeException("Request mutual authentication not supported with JSSE 1.0.x");
++        }
++
++        try
++        {
++            Method method = SSLServerSocket.class.getMethod("setWantClientAuth", new Class[] {Boolean.TYPE});
++            method.invoke(s, new Object[] {Boolean.valueOf(request_mutual_auth)});
++        }
++        catch(Exception e)
++        {
++            throw new RuntimeException(e.toString());
++        }
++    }
++}

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-chunk_size.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-chunk_size.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-chunk_size.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,53 @@
+# 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. 
+
+diff -r -u --ignore-all-space 2.3.0zip/JacORB/src/org/jacorb/orb/CDROutputStream.java 2.3.0cvs/JacORB/src/org/jacorb/orb/CDROutputStream.java
+--- src/org/jacorb/orb/CDROutputStream.java	2007-05-28 15:53:38.000000000 -0400
++++ src/org/jacorb/orb/CDROutputStream.java	2007-05-28 16:12:19.000000000 -0400
+@@ -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.
+  *
+@@ -2484,9 +2484,9 @@
+     {
+         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));
+ 

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-notification-build_xml.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-notification-build_xml.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-notification-build_xml.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,20 @@
+diff -r -u --ignore-all-space 2.3.0zip/JacORB/src/org/jacorb/notification/build.xml 2.3.0cvs/JacORB/src/org/jacorb/notification/build.xml
+--- src/org/jacorb/notification/build.xml	2007-05-28 15:51:03.000000000 -0400
++++ src/org/jacorb/notification/build.xml	2007-05-28 16:12:37.000000000 -0400
+@@ -30,14 +30,14 @@
+ 		<mkdir dir="${src}/generated/${etcl.target.package}" />
+ 
+ 		<path id="path.antlr">
+-			<pathelement path="${basedir}/lib/antlr-2.7.2.jar" />
++			<pathelement path="${basedir}/lib/antlr.jar" />
+ 		</path>
+ 
+ 		<path id="classpath">
+ 			<path refid="path.base" />
+ 			<path refid="path.mx4j" />
+ 			<path refid="path.jboss" />
+-			<pathelement location="${lib}/wrapper-3.1.0.jar" />
++			<pathelement location="${lib}/tanukiwrapper.jar" />
+ 		</path>
+ 
+ 		<macrodef name="jacorb-antlr">

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-null_value_tag.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-null_value_tag.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-null_value_tag.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,90 @@
+# 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.
+
+diff -r -u --ignore-all-space 2.3.0zip/JacORB/src/org/jacorb/orb/CDRInputStream.java 2.3.0cvs/JacORB/src/org/jacorb/orb/CDRInputStream.java
+--- src/org/jacorb/orb/CDRInputStream.java	2007-05-28 15:53:54.000000000 -0400
++++ src/org/jacorb/orb/CDRInputStream.java	2007-05-28 16:12:28.000000000 -0400
+@@ -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
+                     (
+@@ -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;
+         }
+-
+-        // reset buffer
++        else 
++        {
++        	// reset buffer and remember that we're not within a chunk
+         pos = savedPos;
+         index = savedIndex;
+-        return MAX_BLOCK_SIZE;
++        	chunk_end_pos = -1;
++        }
+     }
+ 
+     /**

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-primaddress_port.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-primaddress_port.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-primaddress_port.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,93 @@
+# This patch resets the port of the primary address to zero when an IORInterceptor adds
+# a TAG_CSI_SEC_MECH_LIST component with transport protection requirements (SSL), as it
+# should be per the CSI v2 specification.
+
+--- src/org/jacorb/orb/ORB.java	2007-09-18 11:18:24.000000000 -0300
++++ src/org/jacorb/orb/ORB.java	2007-09-18 11:47:55.000000000 -0300
+@@ -48,6 +48,7 @@
+ import org.omg.CORBA.portable.ValueFactory;
+ import org.omg.CORBA.portable.BoxedValueHelper;
+ import org.omg.CORBA.portable.StreamableValue;
++import org.omg.CSIIOP.*;
+ import org.omg.Messaging.*;
+ import org.omg.PortableInterceptor.*;
+ import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
+@@ -775,9 +776,20 @@
+             }
+         }
+ 
+-        // add GIOP 1.0 profile if necessary
+-
++        // patch the primary address port if an interceptor added a CSI component with
++        // transport protection requirements in the IIOPProfile.
+         IIOPProfile iiopProfile = findIIOPProfile(profiles);
++        if(iiopProfile != null)
++        {
++            TaggedComponentList components = 
++                (TaggedComponentList)componentMap.get(ObjectUtil.newInteger(TAG_INTERNET_IOP.value));
++            if(this.isSSLRequiredInComponentList(components))
++            {
++                iiopProfile.patchPrimaryAddress(new IIOPAddress(null,0));
++            }
++        }
++
++        // add GIOP 1.0 profile if necessary
+         if ( (iiopProfile != null)
+              && ( this.giopMinorVersion == 0 || this.giopAdd_1_0_Profiles ))
+         {
+@@ -826,6 +838,55 @@
+         return new IOR(repId, tps);
+     }
+ 
++    /**
++     * Indicates whether the given <code>TaggedComponentList</code> object contains a
++     * TAG_CSI_SEC_MECH_LIST component with transport protection requirements.
++     *
++     * @param components a <code>TaggedComponentList</code> object.
++     * @return <code>true</code> if the given <code>TaggedComponentList</code> contains
++     * a TAG_CSI_SEC_MECH_LIST component with transport protection requirements;
++     * <code>false</code> otherwise.
++     */
++    public boolean isSSLRequiredInComponentList(TaggedComponentList components)
++    {
++        int minimum_options =
++            Integrity.value |
++            Confidentiality.value |
++            DetectReplay.value |
++            DetectMisordering.value;
++
++        if(components == null)
++        {
++            return false;
++        }
++
++        CompoundSecMechList csmList =
++            (CompoundSecMechList)components.getComponent(
++                                            TAG_CSI_SEC_MECH_LIST.value,
++                                            CompoundSecMechListHelper.class);
++
++        if (csmList != null && csmList.mechanism_list.length > 0 &&
++                csmList.mechanism_list[0].transport_mech.tag ==
++                                                    TAG_TLS_SEC_TRANS.value)
++        {
++            byte[] tlsSecTransData =
++                csmList.mechanism_list[0].transport_mech.component_data;
++            CDRInputStream in =
++                new CDRInputStream((org.omg.CORBA.ORB)null, tlsSecTransData);
++            try
++            {
++                in.openEncapsulatedArray();
++                TLS_SEC_TRANS tls = TLS_SEC_TRANSHelper.read(in);
++                return (tls.target_requires & minimum_options) != 0;
++            }
++            catch ( Exception ex )
++            {
++                throw new INTERNAL(ex.toString());
++            }
++        }
++        return false;
++    }
++
+     private TaggedProfile createMultipleComponentsProfile
+                                   (TaggedComponentList components)
+     {

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-ssl_verification.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-ssl_verification.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-ssl_verification.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,22 @@
+# The SSL profile check is unnecessary and incorrect, as it should also check for the presence of the 
+# TAG_TLS_SEC_TRANS tag in the IIOPProfile. By not doing so, it causes JacORB not to open SSL connections
+# when the server-side IORs contain only the TAG_TLS_SEC_TRANS tag. We can just eliminate this verification
+# since the remaining method body already performs the necessary checks correctly.
+
+--- src/org/jacorb/orb/iiop/ClientIIOPConnection.java	2007-09-11 14:25:29.000000000 -0300
++++ src/org/jacorb/orb/iiop/ClientIIOPConnection.java	2007-09-10 18:49:09.000000000 -0300
+@@ -432,10 +432,10 @@
+     private void checkSSL()
+     {
+         // Check if SSL profile
+-        if (((IIOPProfile)profile).getSSL () == null)
+-        {
+-            return;
+-        }
++        //if (((IIOPProfile)profile).getSSL () == null)
++        //{
++        //    return;
++        //}
+ 
+         CompoundSecMechList sas;
+         try

Added: jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-version.patch
===================================================================
--- jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-version.patch	                        (rev 0)
+++ jacorb/2.3.0jboss.patch6-brew/src/jacorb-2.3.0-version.patch	2008-12-11 18:21:02 UTC (rev 19540)
@@ -0,0 +1,14 @@
+diff -r -u --ignore-all-space 2.3.0zip/JacORB/src/org/jacorb/util/Version.java 2.3.0cvs/JacORB/src/org/jacorb/util/Version.java
+--- src/org/jacorb/util/Version.java	2007-05-28 15:54:02.000000000 -0400
++++ src/org/jacorb/util/Version.java	2007-05-28 16:11:51.000000000 -0400
+@@ -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 6)";
++    public static final String date = "06-Jun-2007";
+     public static final String longVersion = version + ", " + date;
+     public static final String yearString = "1997-2007";
+ }




More information about the jboss-cvs-commits mailing list