[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