blob: 68a901fd60ebbe5af54decff745f2d92c43f9d65 [file] [log] [blame]
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code 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 General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.corba.se.impl.orbutil;
import com.sun.corba.se.impl.util.SUNVMCID ;
public class ORBConstants {
private ORBConstants() {}
public static final String STRINGIFY_PREFIX = "IOR:" ;
/* TAGS
tag-request@omg.org
FAQ on tags and tag allocation: http://doc.omg.org/ptc/99-02-01.
http://doc.omg.org/standard-tags
http://doc.omg.org/vendor-tags
Last update: 19th August 2003 (ptc/03-08-14)
// Legacy
1 profile tag 0x4f4e4300 ("ONC\x00")
1 profile tag 0x4e454f00 ("NEO\x00")
1 profile tag 0x434f4f4c ("COOL")
16 service tags 0x4e454f00 - 0x4e454f0f ("NEO\x00" - "NEO\x0f")
// Current
16 VMCID 0x5355xxxx ("SU\x00\x00" - "SU\xff\xff")
16 profile tags 0x53554e00 - 0x53554e0f ("SUN\x00" - "SUN\x0f")
16 ORB Type IDs 0x53554e00 - 0x53554e0f ("SUN\x00" - "SUN\x0f")
64 service tags 0x53554e00 - 0x53554e3f ("SUN\x00" - "SUN\x3f")
64 component tags 0x53554e00 - 0x53554e3f ("SUN\x00" - "SUN\x3f")
*/
// All NEO service contexts must be in the range
// NEO_FIRST_SERVICE_CONTEXT to
// NEO_FIRST_SERVICE_CONTEXT + NUM_NEO_SERVICE_CONTEXTS - 1
public static final int NEO_FIRST_SERVICE_CONTEXT = 0x4e454f00 ;
public static final int NUM_NEO_SERVICE_CONTEXTS = 15 ;
public static final int TAG_ORB_VERSION = NEO_FIRST_SERVICE_CONTEXT ;
public static final int SUN_TAGGED_COMPONENT_ID_BASE = 0x53554e00;
public static final int SUN_SERVICE_CONTEXT_ID_BASE = 0x53554e00;
//
// Tagged Components Ids
//
// Used by AS 7 for IIOP failover.
public static final int TAG_CONTAINER_ID =
SUN_TAGGED_COMPONENT_ID_BASE + 0;
// Used by AS 8.1 for Request Partioning
public static final int TAG_REQUEST_PARTITIONING_ID =
SUN_TAGGED_COMPONENT_ID_BASE + 1;
// TaggedComponentId for Java serialization tagged component.
public static final int TAG_JAVA_SERIALIZATION_ID =
SUN_TAGGED_COMPONENT_ID_BASE + 2;
//
// Service Context Ids
//
// Used by AS 7 for IIOP failover.
public static final int CONTAINER_ID_SERVICE_CONTEXT =
SUN_SERVICE_CONTEXT_ID_BASE + 0;
// All Sun policies are allocated using the SUNVMCID, which is also
// used for minor codes. This allows 12 bits of offset, so
// the largest legal Sun policy is SUNVMCID.value + 4095.
public static final int SERVANT_CACHING_POLICY = SUNVMCID.value + 0 ;
public static final int ZERO_PORT_POLICY = SUNVMCID.value + 1 ;
public static final int COPY_OBJECT_POLICY = SUNVMCID.value + 2 ;
public static final int REQUEST_PARTITIONING_POLICY = SUNVMCID.value + 3 ;
// These are the subcontract IDs for various qualities of
// service/implementation.
// Persistent SCIDs have the second bit as 1.
// SCIDs less than FIRST_POA_SCID are JavaIDL SCIDs.
public static final int TOA_SCID = 2 ;
public static final int DEFAULT_SCID = TOA_SCID ;
public static final int FIRST_POA_SCID = 32;
public static final int MAX_POA_SCID = 63;
public static final int TRANSIENT_SCID = FIRST_POA_SCID ;
public static final int PERSISTENT_SCID = makePersistent( TRANSIENT_SCID ) ;
public static final int SC_TRANSIENT_SCID = FIRST_POA_SCID + 4 ;
public static final int SC_PERSISTENT_SCID = makePersistent( SC_TRANSIENT_SCID ) ;
public static final int IISC_TRANSIENT_SCID = FIRST_POA_SCID + 8 ;
public static final int IISC_PERSISTENT_SCID = makePersistent( IISC_TRANSIENT_SCID ) ;
public static final int MINSC_TRANSIENT_SCID = FIRST_POA_SCID + 12 ;
public static final int MINSC_PERSISTENT_SCID = makePersistent( MINSC_TRANSIENT_SCID ) ;
public static boolean isTransient( int scid )
{
return (scid & 2) == 0 ;
}
public static int makePersistent( int scid )
{
return scid | 2 ;
}
// Constants for ORB properties **************************************************************
// All ORB properties must follow the following rules:
// 1. Property names must start with either
// ORG_OMG_CORBA_PREFIX or SUN_PREFIX.
// 2. Property names must have unique suffixes after the last ".".
// 3. Property names must have "ORB" as the first 3 letters
// in their suffix.
// 4. proprietary property names should have a subsystem
// where appropriate after the prefix.
// org.omg.CORBA properties must be defined by OMG standards
// The well known org.omg.CORBA.ORBClass and
// org.omg.CORBA.ORBSingletonClass are not included here
// since they occur in org.omg.CORBA.ORB.
public static final String ORG_OMG_PREFIX = "org.omg." ;
public static final String ORG_OMG_CORBA_PREFIX = "org.omg.CORBA." ;
public static final String INITIAL_HOST_PROPERTY =
ORG_OMG_CORBA_PREFIX + "ORBInitialHost" ;
public static final String INITIAL_PORT_PROPERTY =
ORG_OMG_CORBA_PREFIX + "ORBInitialPort" ;
public static final String INITIAL_SERVICES_PROPERTY =
ORG_OMG_CORBA_PREFIX + "ORBInitialServices" ;
public static final String DEFAULT_INIT_REF_PROPERTY =
ORG_OMG_CORBA_PREFIX + "ORBDefaultInitRef" ;
public static final String ORB_INIT_REF_PROPERTY =
ORG_OMG_CORBA_PREFIX + "ORBInitRef" ;
// All of our proprietary properties must start with com.sun.CORBA
public static final String SUN_PREFIX = "com.sun.CORBA." ;
// general properties
public static final String ALLOW_LOCAL_OPTIMIZATION = SUN_PREFIX + "ORBAllowLocalOptimization" ;
public static final String SERVER_PORT_PROPERTY = SUN_PREFIX + "ORBServerPort" ;
public static final String SERVER_HOST_PROPERTY = SUN_PREFIX + "ORBServerHost" ;
public static final String ORB_ID_PROPERTY = ORG_OMG_CORBA_PREFIX + "ORBId" ;
// This property is provided for backward compatibility reasons
public static final String OLD_ORB_ID_PROPERTY = SUN_PREFIX + "ORBid" ;
public static final String ORB_SERVER_ID_PROPERTY = ORG_OMG_CORBA_PREFIX + "ORBServerId" ;
public static final String DEBUG_PROPERTY = SUN_PREFIX + "ORBDebug" ;
// Property for setting use of repository Ids during serialization.
public static final String USE_REP_ID = SUN_PREFIX + "ORBUseRepId";
// NOTE: This is an internal property. It should never be set by
// a user. That is the reason it has spaces in its name - to make it
// harder to use.
public static final String LISTEN_ON_ALL_INTERFACES = SUN_PREFIX + "INTERNAL USE ONLY: listen on all interfaces";
// giop related properties - default settings in decimal form
public static final String GIOP_VERSION = SUN_PREFIX + "giop.ORBGIOPVersion" ;
public static final String GIOP_FRAGMENT_SIZE = SUN_PREFIX + "giop.ORBFragmentSize" ;
public static final String GIOP_BUFFER_SIZE = SUN_PREFIX + "giop.ORBBufferSize" ;
public static final String GIOP_11_BUFFMGR = SUN_PREFIX + "giop.ORBGIOP11BuffMgr";
public static final String GIOP_12_BUFFMGR = SUN_PREFIX + "giop.ORBGIOP12BuffMgr";
public static final String GIOP_TARGET_ADDRESSING = SUN_PREFIX + "giop.ORBTargetAddressing";
public static final int GIOP_DEFAULT_FRAGMENT_SIZE = 1024;
public static final int GIOP_DEFAULT_BUFFER_SIZE = 1024;
public static final int DEFAULT_GIOP_11_BUFFMGR = 0; //Growing
public static final int DEFAULT_GIOP_12_BUFFMGR = 2; //Streaming
public static final short ADDR_DISP_OBJKEY = 0; // object key used for target addressing
public static final short ADDR_DISP_PROFILE = 1; // iop profile used for target addressing
public static final short ADDR_DISP_IOR = 2; // ior used for target addressing
public static final short ADDR_DISP_HANDLE_ALL = 3; // accept all target addressing dispositions (default)
// CORBA formal 00-11-03 sections 15.4.2.2, 15.4.3.2, 15.4.6.2
// state that the GIOP 1.2 RequestMessage, ReplyMessage, and
// LocateReply message bodies must begin on 8 byte boundaries.
public static final int GIOP_12_MSG_BODY_ALIGNMENT = 8;
// The GIOP 1.2 fragments must be divisible by 8. We generalize this
// to GIOP 1.1 fragments, as well.
public static final int GIOP_FRAGMENT_DIVISOR = 8;
public static final int GIOP_FRAGMENT_MINIMUM_SIZE = 32;
// connection management properties
public static final String HIGH_WATER_MARK_PROPERTY =
SUN_PREFIX + "connection.ORBHighWaterMark" ;
public static final String LOW_WATER_MARK_PROPERTY =
SUN_PREFIX + "connection.ORBLowWaterMark" ;
public static final String NUMBER_TO_RECLAIM_PROPERTY =
SUN_PREFIX + "connection.ORBNumberToReclaim" ;
public static final String ACCEPTOR_CLASS_PREFIX_PROPERTY =
SUN_PREFIX + "transport.ORBAcceptor";
public static final String CONTACT_INFO_LIST_FACTORY_CLASS_PROPERTY =
SUN_PREFIX + "transport.ORBContactInfoList";
// Legacy:
public static final String LEGACY_SOCKET_FACTORY_CLASS_PROPERTY =
SUN_PREFIX + "legacy.connection.ORBSocketFactoryClass" ;
public static final String SOCKET_FACTORY_CLASS_PROPERTY =
SUN_PREFIX + "transport.ORBSocketFactoryClass" ;
public static final String LISTEN_SOCKET_PROPERTY =
SUN_PREFIX + "transport.ORBListenSocket";
public static final String IOR_TO_SOCKET_INFO_CLASS_PROPERTY =
SUN_PREFIX + "transport.ORBIORToSocketInfoClass";
public static final String IIOP_PRIMARY_TO_CONTACT_INFO_CLASS_PROPERTY =
SUN_PREFIX + "transport.ORBIIOPPrimaryToContactInfoClass";
// Request partitioning maximum and minimum thread pool id constants.
public static final int REQUEST_PARTITIONING_MIN_THREAD_POOL_ID = 0;
public static final int REQUEST_PARTITIONING_MAX_THREAD_POOL_ID = 63;
// transport read tcp timeout property, colon separated property
// with syntax <initial time to wait:max read giop header time to
// wait: max read message time to wait:backoff factor>
public static final String TRANSPORT_TCP_READ_TIMEOUTS_PROPERTY =
SUN_PREFIX + "transport.ORBTCPReadTimeouts";
// initial time to wait in milliseconds if a transport
// tcp read returns 0 bytes
public static final int TRANSPORT_TCP_INITIAL_TIME_TO_WAIT = 100;
// max time to spend in cumulative waits in milliseconds
// if a transport tcp read returns 0 bytes
public static final int TRANSPORT_TCP_MAX_TIME_TO_WAIT = 3000;
// max time to spend in cumulative waits in milliseconds
// if a transport tcp read of GIOP header returns 0 bytes
public static final int TRANSPORT_TCP_GIOP_HEADER_MAX_TIME_TO_WAIT = 300;
// A backoff percentage used to compute the next amount of time to
// wait on a subsequent transport tcp read of 0 bytes
public static final int TRANSPORT_TCP_TIME_TO_WAIT_BACKOFF_FACTOR = 20;
public static final String USE_NIO_SELECT_TO_WAIT_PROPERTY =
SUN_PREFIX + "transport.ORBUseNIOSelectToWait";
// "Socket" | "SocketChannel"
// Note: Connections accepted by SocketChannel will be SocketChannel.
public static final String ACCEPTOR_SOCKET_TYPE_PROPERTY =
SUN_PREFIX + "transport.ORBAcceptorSocketType";
// Applicable if using SocketChannel and using select thread.
public static final String ACCEPTOR_SOCKET_USE_WORKER_THREAD_FOR_EVENT_PROPERTY =
SUN_PREFIX + "transport.ORBAcceptorSocketUseWorkerThreadForEvent";
// Applicable on client-side. "Socket" | "SocketChannel"
public static final String CONNECTION_SOCKET_TYPE_PROPERTY =
SUN_PREFIX + "transport.ORBConnectionSocketType";
// Applicable if using SocketChannel and using select thread
public static final String CONNECTION_SOCKET_USE_WORKER_THREAD_FOR_EVENT_PROPERTY =
SUN_PREFIX + "transport.ORBConnectionSocketUseWorkerThreadForEvent";
// Used to disable the use of direct byte buffers. This enables much easier
// debugging, because the contents of a direct byte buffer cannot be
// viewed in most (all?) debuggers.
public static final String DISABLE_DIRECT_BYTE_BUFFER_USE_PROPERTY =
SUN_PREFIX + "transport.ORBDisableDirectByteBufferUse" ;
public static final String SOCKET = "Socket";
public static final String SOCKETCHANNEL = "SocketChannel";
// POA related policies
public static final String PERSISTENT_SERVER_PORT_PROPERTY = SUN_PREFIX + "POA.ORBPersistentServerPort" ;
public static final String SERVER_ID_PROPERTY = SUN_PREFIX + "POA.ORBServerId" ;
public static final String BAD_SERVER_ID_HANDLER_CLASS_PROPERTY
= SUN_PREFIX + "POA.ORBBadServerIdHandlerClass" ;
public static final String ACTIVATED_PROPERTY = SUN_PREFIX + "POA.ORBActivated" ;
public static final String SERVER_NAME_PROPERTY = SUN_PREFIX + "POA.ORBServerName" ;
// Server Properties; e.g. when properties passed to ORB activated
// servers
public static final String SERVER_DEF_VERIFY_PROPERTY = SUN_PREFIX + "activation.ORBServerVerify" ;
// This one is an exception, but it may be externally visible
public static final String SUN_LC_PREFIX = "com.sun.corba." ;
// Necessary for package renaming to work correctly
public static final String SUN_LC_VERSION_PREFIX = "com.sun.corba.se.";
public static final String JTS_CLASS_PROPERTY = SUN_LC_VERSION_PREFIX + "CosTransactions.ORBJTSClass" ;
// Property for enabling ORB's use of Java serialization.
public static final String ENABLE_JAVA_SERIALIZATION_PROPERTY =
SUN_PREFIX + "encoding.ORBEnableJavaSerialization";
// Constants for ORB prefixes **************************************************************
public static final String PI_ORB_INITIALIZER_CLASS_PREFIX =
"org.omg.PortableInterceptor.ORBInitializerClass.";
public static final String USE_DYNAMIC_STUB_PROPERTY = SUN_PREFIX + "ORBUseDynamicStub" ;
public static final String DYNAMIC_STUB_FACTORY_FACTORY_CLASS =
SUN_PREFIX + "ORBDynamicStubFactoryFactoryClass" ;
// Constants for NameService properties ************************************
public static final int DEFAULT_INITIAL_PORT = 900;
public static final String DEFAULT_INS_HOST = "localhost";
public static final int DEFAULT_INS_PORT = 2089;
public static final int DEFAULT_INS_GIOP_MAJOR_VERSION = 1;
// http://www.omg.org/cgi-bin/doc?ptc/00-08-07 [ Section 13.6.7.3 ]
// defines the default GIOP minor version to be 0.
public static final int DEFAULT_INS_GIOP_MINOR_VERSION = 0;
// Constants for INS properties ********************************************
// GIOP Version number for validation of INS URL format addresses
public static final int MAJORNUMBER_SUPPORTED = 1;
public static final int MINORNUMBERMAX = 2;
// Subcontract's differentiation using the TRANSIENT and PERSISTENT
// Name Service Property.
public static final int TRANSIENT = 1;
public static final int PERSISTENT = 2;
// Constants for ORBD properties ****************************************************************
// These properties are never passed on ORB init: they are only passed to ORBD.
public static final String DB_DIR_PROPERTY = SUN_PREFIX + "activation.DbDir" ;
public static final String DB_PROPERTY = SUN_PREFIX + "activation.db" ;
public static final String ORBD_PORT_PROPERTY = SUN_PREFIX + "activation.Port" ;
public static final String SERVER_POLLING_TIME = SUN_PREFIX + "activation.ServerPollingTime";
public static final String SERVER_STARTUP_DELAY = SUN_PREFIX + "activation.ServerStartupDelay";
public static final int DEFAULT_ACTIVATION_PORT = 1049 ;
// If RI is starting the NameService then they would indicate that by
// passing the RI flag. That would start a Persistent Port to listen to
// INS request.
public static final int RI_NAMESERVICE_PORT = 1050;
public static final int DEFAULT_SERVER_POLLING_TIME = 1000;
public static final int DEFAULT_SERVER_STARTUP_DELAY = 1000;
//***************** Constants for Logging ****************
public static final String LOG_LEVEL_PROPERTY = SUN_PREFIX + "ORBLogLevel";
public static final String LOG_RESOURCE_FILE =
"com.sun.corba.se.impl.logging.LogStrings";
// Constants for initial references *************************************************************
public static final String TRANSIENT_NAME_SERVICE_NAME = "TNameService" ;
public static final String PERSISTENT_NAME_SERVICE_NAME = "NameService" ;
// A large Number to make sure that other ServerIds doesn't collide
// with NameServer Persistent Server Id
public static final String NAME_SERVICE_SERVER_ID = "1000000" ;
public static final String ROOT_POA_NAME = "RootPOA" ;
public static final String POA_CURRENT_NAME = "POACurrent" ;
public static final String SERVER_ACTIVATOR_NAME = "ServerActivator" ;
public static final String SERVER_LOCATOR_NAME = "ServerLocator" ;
public static final String SERVER_REPOSITORY_NAME = "ServerRepository" ;
public static final String INITIAL_NAME_SERVICE_NAME= "InitialNameService" ;
public static final String TRANSACTION_CURRENT_NAME = "TransactionCurrent" ;
public static final String DYN_ANY_FACTORY_NAME = "DynAnyFactory" ;
// New for Portable Interceptors
public static final String PI_CURRENT_NAME = "PICurrent" ;
public static final String CODEC_FACTORY_NAME = "CodecFactory" ;
// Constants for ORBD DB ***********************************************************************
public static final String DEFAULT_DB_DIR = "orb.db" ;
public static final String DEFAULT_DB_NAME = "db" ;
public static final String INITIAL_ORB_DB = "initial.db" ;
public static final String SERVER_LOG_DIR = "logs" ;
public static final String ORBID_DIR_BASE = "orbids" ;
public static final String ORBID_DB_FILE_NAME = "orbids.db" ;
// Constants for ThreadPool ********************************************************************
// Default value for when inactive threads in the pool can stop running (ms)
public static final int DEFAULT_INACTIVITY_TIMEOUT = 120000;
// Default name of the threadpool
public static final String THREADPOOL_DEFAULT_NAME = "default-threadpool";
// Default name of the workqueue
public static final String WORKQUEUE_DEFAULT_NAME = "default-workqueue";
// Constants for minor code bases **************************************************************
// This is the value that pre-Merlin Sun ORBs incorrectly used. We preserve this
// here for backwards compatibility, but note that the current ORB must never
// create a BAD_PARAM system exception with this minor code.
public static final int LEGACY_SUN_NOT_SERIALIZABLE = SUNVMCID.value + 1 ;
// Code Set related *******************************************************
// If we don't always send the code set context, there's a possibility
// of failure when fragments of a smaller request are interleved with
// those of a first request with other large service contexts.
//
public static final boolean DEFAULT_ALWAYS_SEND_CODESET_CTX = true;
public static final String ALWAYS_SEND_CODESET_CTX_PROPERTY
= SUN_PREFIX + "codeset.AlwaysSendCodeSetCtx";
// Use byte order markers in streams when applicable? This won't apply to
// GIOP 1.1 due to limitations in the CDR encoding.
public static final boolean DEFAULT_USE_BYTE_ORDER_MARKERS = true;
public static final String USE_BOMS = SUN_PREFIX + "codeset.UseByteOrderMarkers";
// Use byte order markers in encapsulations when applicable?
public static final boolean DEFAULT_USE_BYTE_ORDER_MARKERS_IN_ENCAPS = false;
public static final String USE_BOMS_IN_ENCAPS = SUN_PREFIX + "codeset.UseByteOrderMarkersInEncaps";
// The CHAR_CODESETS and WCHAR_CODESETS allow the user to override the default
// connection code sets. The value should be a comma separated list of OSF
// registry numbers. The first number in the list will be the native code
// set.
//
// Number can be specified as hex if preceded by 0x, otherwise they are
// interpreted as decimal.
//
// Code sets that we accept currently (see core/OSFCodeSetRegistry):
//
// char/string:
//
// ISO8859-1 (Latin-1) 0x00010001
// ISO646 (ASCII) 0x00010020
// UTF-8 0x05010001
//
// wchar/string:
//
// UTF-16 0x00010109
// UCS-2 0x00010100
// UTF-8 0x05010001
//
// Note: The ORB will let you assign any of the above values to
// either of the following properties, but the above assignments
// are the only ones that won't get you into trouble.
public static final String CHAR_CODESETS = SUN_PREFIX + "codeset.charsets";
public static final String WCHAR_CODESETS = SUN_PREFIX + "codeset.wcharsets";
// Constants to make stream format version code easier to read
public static final byte STREAM_FORMAT_VERSION_1 = (byte)1;
public static final byte STREAM_FORMAT_VERSION_2 = (byte)2;
}