ORBConstants.java revision 608:7e06bf1dcb09
1/*
2 * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26package com.sun.corba.se.impl.orbutil;
27
28import com.sun.corba.se.impl.util.SUNVMCID ;
29
30public class ORBConstants {
31    private ORBConstants() {}
32
33    public static final String STRINGIFY_PREFIX = "IOR:" ;
34
35    /* TAGS
36       tag-request@omg.org
37       FAQ on tags and tag allocation: http://doc.omg.org/ptc/99-02-01.
38       http://doc.omg.org/standard-tags
39       http://doc.omg.org/vendor-tags
40
41       Last update:  19th August 2003 (ptc/03-08-14)
42
43       // Legacy
44       1 profile tag      0x4f4e4300              ("ONC\x00")
45       1 profile tag      0x4e454f00              ("NEO\x00")
46       1 profile tag      0x434f4f4c              ("COOL")
47       16 service tags    0x4e454f00 - 0x4e454f0f ("NEO\x00" - "NEO\x0f")
48
49       // Current
50       16 VMCID           0x5355xxxx              ("SU\x00\x00" - "SU\xff\xff")
51       16 profile tags    0x53554e00 - 0x53554e0f ("SUN\x00" - "SUN\x0f")
52       16 ORB Type IDs    0x53554e00 - 0x53554e0f ("SUN\x00" - "SUN\x0f")
53       64 service tags    0x53554e00 - 0x53554e3f ("SUN\x00" - "SUN\x3f")
54       64 component tags  0x53554e00 - 0x53554e3f ("SUN\x00" - "SUN\x3f")
55    */
56
57    // All NEO service contexts must be in the range
58    // NEO_FIRST_SERVICE_CONTEXT to
59    // NEO_FIRST_SERVICE_CONTEXT + NUM_NEO_SERVICE_CONTEXTS - 1
60    public static final int NEO_FIRST_SERVICE_CONTEXT = 0x4e454f00 ;
61    public static final int NUM_NEO_SERVICE_CONTEXTS = 15 ;
62    public static final int TAG_ORB_VERSION = NEO_FIRST_SERVICE_CONTEXT ;
63
64    public static final int SUN_TAGGED_COMPONENT_ID_BASE = 0x53554e00;
65    public static final int SUN_SERVICE_CONTEXT_ID_BASE  = 0x53554e00;
66
67    //
68    // Tagged Components Ids
69    //
70
71    // Used by AS 7 for IIOP failover.
72    public static final int TAG_CONTAINER_ID =
73        SUN_TAGGED_COMPONENT_ID_BASE + 0;
74    // Used by AS 8.1 for Request Partioning
75    public static final int TAG_REQUEST_PARTITIONING_ID =
76        SUN_TAGGED_COMPONENT_ID_BASE + 1;
77    // TaggedComponentId for Java serialization tagged component.
78    public static final int TAG_JAVA_SERIALIZATION_ID =
79        SUN_TAGGED_COMPONENT_ID_BASE + 2;
80
81    //
82    // Service Context Ids
83    //
84
85    // Used by AS 7 for IIOP failover.
86    public static final int CONTAINER_ID_SERVICE_CONTEXT =
87        SUN_SERVICE_CONTEXT_ID_BASE + 0;
88
89    // All Sun policies are allocated using the SUNVMCID, which is also
90    // used for minor codes.  This allows 12 bits of offset, so
91    // the largest legal Sun policy is SUNVMCID.value + 4095.
92    public static final int SERVANT_CACHING_POLICY      = SUNVMCID.value + 0 ;
93    public static final int ZERO_PORT_POLICY            = SUNVMCID.value + 1 ;
94    public static final int COPY_OBJECT_POLICY          = SUNVMCID.value + 2 ;
95    public static final int REQUEST_PARTITIONING_POLICY = SUNVMCID.value + 3 ;
96
97    // These are the subcontract IDs for various qualities of
98    // service/implementation.
99    // Persistent SCIDs have the second bit as 1.
100    // SCIDs less than FIRST_POA_SCID are JavaIDL SCIDs.
101    public static final int TOA_SCID = 2 ;
102
103    public static final int DEFAULT_SCID = TOA_SCID ;
104
105    public static final int FIRST_POA_SCID = 32;
106    public static final int MAX_POA_SCID = 63;
107    public static final int TRANSIENT_SCID          = FIRST_POA_SCID ;
108    public static final int PERSISTENT_SCID         = makePersistent( TRANSIENT_SCID ) ;
109    public static final int SC_TRANSIENT_SCID       = FIRST_POA_SCID + 4 ;
110    public static final int SC_PERSISTENT_SCID      = makePersistent( SC_TRANSIENT_SCID ) ;
111    public static final int IISC_TRANSIENT_SCID     = FIRST_POA_SCID + 8 ;
112    public static final int IISC_PERSISTENT_SCID    = makePersistent( IISC_TRANSIENT_SCID ) ;
113    public static final int MINSC_TRANSIENT_SCID    = FIRST_POA_SCID + 12 ;
114    public static final int MINSC_PERSISTENT_SCID   = makePersistent( MINSC_TRANSIENT_SCID ) ;
115
116    public static boolean isTransient( int scid )
117    {
118        return (scid & 2) == 0 ;
119    }
120
121    public static int makePersistent( int scid )
122    {
123        return scid | 2 ;
124    }
125
126    // Constants for ORB properties **************************************************************
127
128    // All ORB properties must follow the following rules:
129    // 1. Property names must start with either
130    //    ORG_OMG_CORBA_PREFIX or SUN_PREFIX.
131    // 2. Property names must have unique suffixes after the last ".".
132    // 3. Property names must have "ORB" as the first 3 letters
133    //    in their suffix.
134    // 4. proprietary property names should have a subsystem
135    //    where appropriate after the prefix.
136
137    // org.omg.CORBA properties must be defined by OMG standards
138    // The well known org.omg.CORBA.ORBClass and
139    // org.omg.CORBA.ORBSingletonClass are not included here
140    // since they occur in org.omg.CORBA.ORB.
141
142    public static final String ORG_OMG_PREFIX       = "org.omg." ;
143    public static final String ORG_OMG_CORBA_PREFIX = "org.omg.CORBA." ;
144
145    public static final String INITIAL_HOST_PROPERTY =
146        ORG_OMG_CORBA_PREFIX + "ORBInitialHost" ;
147    public static final String INITIAL_PORT_PROPERTY =
148        ORG_OMG_CORBA_PREFIX + "ORBInitialPort" ;
149    public static final String INITIAL_SERVICES_PROPERTY =
150        ORG_OMG_CORBA_PREFIX + "ORBInitialServices" ;
151    public static final String DEFAULT_INIT_REF_PROPERTY =
152        ORG_OMG_CORBA_PREFIX + "ORBDefaultInitRef" ;
153    public static final String ORB_INIT_REF_PROPERTY =
154        ORG_OMG_CORBA_PREFIX + "ORBInitRef" ;
155
156    // All of our proprietary properties must start with com.sun.CORBA
157    public static final String SUN_PREFIX = "com.sun.CORBA." ;
158
159    // general properties
160    public static final String ALLOW_LOCAL_OPTIMIZATION         = SUN_PREFIX + "ORBAllowLocalOptimization" ;
161    public static final String SERVER_PORT_PROPERTY             = SUN_PREFIX + "ORBServerPort" ;
162    public static final String SERVER_HOST_PROPERTY             = SUN_PREFIX + "ORBServerHost" ;
163    public static final String ORB_ID_PROPERTY                  = ORG_OMG_CORBA_PREFIX + "ORBId" ;
164    // This property is provided for backward compatibility reasons
165    public static final String OLD_ORB_ID_PROPERTY              = SUN_PREFIX + "ORBid" ;
166    public static final String ORB_SERVER_ID_PROPERTY           = ORG_OMG_CORBA_PREFIX + "ORBServerId" ;
167    public static final String DEBUG_PROPERTY                   = SUN_PREFIX + "ORBDebug" ;
168    // Property for setting use of repository Ids during serialization.
169    public static final String USE_REP_ID = SUN_PREFIX + "ORBUseRepId";
170
171    // NOTE: This is an internal property.  It should never be set by
172    // a user.  That is the reason it has spaces in its name - to make it
173    // harder to use.
174    public static final String LISTEN_ON_ALL_INTERFACES         = SUN_PREFIX + "INTERNAL USE ONLY: listen on all interfaces";
175
176    // giop related properties - default settings in decimal form
177    public static final String GIOP_VERSION                     = SUN_PREFIX + "giop.ORBGIOPVersion" ;
178    public static final String GIOP_FRAGMENT_SIZE               = SUN_PREFIX + "giop.ORBFragmentSize" ;
179    public static final String GIOP_BUFFER_SIZE                 = SUN_PREFIX + "giop.ORBBufferSize" ;
180    public static final String GIOP_11_BUFFMGR                  = SUN_PREFIX + "giop.ORBGIOP11BuffMgr";
181    public static final String GIOP_12_BUFFMGR                  = SUN_PREFIX + "giop.ORBGIOP12BuffMgr";
182    public static final String GIOP_TARGET_ADDRESSING           = SUN_PREFIX + "giop.ORBTargetAddressing";
183    public static final int GIOP_DEFAULT_FRAGMENT_SIZE = 1024;
184    public static final int GIOP_DEFAULT_BUFFER_SIZE = 1024;
185    public static final int DEFAULT_GIOP_11_BUFFMGR = 0; //Growing
186    public static final int DEFAULT_GIOP_12_BUFFMGR = 2; //Streaming
187    public static final short ADDR_DISP_OBJKEY = 0; // object key used for target addressing
188    public static final short ADDR_DISP_PROFILE = 1; // iop profile used for target addressing
189    public static final short ADDR_DISP_IOR = 2; // ior used for target addressing
190    public static final short ADDR_DISP_HANDLE_ALL = 3; // accept all target addressing dispositions (default)
191
192    // CORBA formal 00-11-03 sections 15.4.2.2, 15.4.3.2, 15.4.6.2
193    // state that the GIOP 1.2 RequestMessage, ReplyMessage, and
194    // LocateReply message bodies must begin on 8 byte boundaries.
195    public static final int GIOP_12_MSG_BODY_ALIGNMENT = 8;
196
197    // The GIOP 1.2 fragments must be divisible by 8.  We generalize this
198    // to GIOP 1.1 fragments, as well.
199    public static final int GIOP_FRAGMENT_DIVISOR = 8;
200    public static final int GIOP_FRAGMENT_MINIMUM_SIZE = 32;
201
202    // connection management properties
203    public static final String HIGH_WATER_MARK_PROPERTY =
204        SUN_PREFIX + "connection.ORBHighWaterMark" ;
205    public static final String LOW_WATER_MARK_PROPERTY =
206        SUN_PREFIX + "connection.ORBLowWaterMark" ;
207    public static final String NUMBER_TO_RECLAIM_PROPERTY =
208        SUN_PREFIX + "connection.ORBNumberToReclaim" ;
209
210    public static final String ACCEPTOR_CLASS_PREFIX_PROPERTY =
211        SUN_PREFIX + "transport.ORBAcceptor";
212
213    public static final String CONTACT_INFO_LIST_FACTORY_CLASS_PROPERTY =
214        SUN_PREFIX + "transport.ORBContactInfoList";
215
216    // Legacy:
217    public static final String LEGACY_SOCKET_FACTORY_CLASS_PROPERTY =
218        SUN_PREFIX + "legacy.connection.ORBSocketFactoryClass" ;
219
220
221    public static final String SOCKET_FACTORY_CLASS_PROPERTY =
222        SUN_PREFIX + "transport.ORBSocketFactoryClass" ;
223    public static final String LISTEN_SOCKET_PROPERTY =
224        SUN_PREFIX + "transport.ORBListenSocket";
225    public static final String IOR_TO_SOCKET_INFO_CLASS_PROPERTY =
226        SUN_PREFIX + "transport.ORBIORToSocketInfoClass";
227    public static final String IIOP_PRIMARY_TO_CONTACT_INFO_CLASS_PROPERTY =
228        SUN_PREFIX + "transport.ORBIIOPPrimaryToContactInfoClass";
229
230    // Request partitioning maximum and minimum thread pool id constants.
231    public static final int REQUEST_PARTITIONING_MIN_THREAD_POOL_ID =  0;
232    public static final int REQUEST_PARTITIONING_MAX_THREAD_POOL_ID = 63;
233
234    // transport read tcp timeout property, colon separated property
235    // with syntax <initial time to wait:max read giop header time to
236    // wait: max read message time to wait:backoff factor>
237    public static final String TRANSPORT_TCP_READ_TIMEOUTS_PROPERTY =
238        SUN_PREFIX + "transport.ORBTCPReadTimeouts";
239
240    // initial time to wait in milliseconds if a transport
241    // tcp read returns 0 bytes
242    public static final int TRANSPORT_TCP_INITIAL_TIME_TO_WAIT = 100;
243
244    // max time to spend in cumulative waits in milliseconds
245    // if a transport tcp read returns 0 bytes
246    public static final int TRANSPORT_TCP_MAX_TIME_TO_WAIT = 3000;
247
248    // max time to spend in cumulative waits in milliseconds
249    // if a transport tcp read of GIOP header returns 0 bytes
250    public static final int TRANSPORT_TCP_GIOP_HEADER_MAX_TIME_TO_WAIT = 300;
251
252    // A backoff percentage used to compute the next amount of time to
253    // wait on a subsequent transport tcp read of 0 bytes
254    public static final int TRANSPORT_TCP_TIME_TO_WAIT_BACKOFF_FACTOR = 20;
255
256    public static final String USE_NIO_SELECT_TO_WAIT_PROPERTY =
257        SUN_PREFIX + "transport.ORBUseNIOSelectToWait";
258
259    // "Socket" | "SocketChannel"
260    // Note: Connections accepted by SocketChannel will be SocketChannel.
261    public static final String ACCEPTOR_SOCKET_TYPE_PROPERTY =
262        SUN_PREFIX + "transport.ORBAcceptorSocketType";
263
264    // Applicable if using SocketChannel and using select thread.
265    public static final String ACCEPTOR_SOCKET_USE_WORKER_THREAD_FOR_EVENT_PROPERTY =
266        SUN_PREFIX + "transport.ORBAcceptorSocketUseWorkerThreadForEvent";
267
268    // Applicable on client-side. "Socket" | "SocketChannel"
269    public static final String CONNECTION_SOCKET_TYPE_PROPERTY =
270        SUN_PREFIX + "transport.ORBConnectionSocketType";
271
272    // Applicable if using SocketChannel and using select thread
273    public static final String CONNECTION_SOCKET_USE_WORKER_THREAD_FOR_EVENT_PROPERTY =
274        SUN_PREFIX + "transport.ORBConnectionSocketUseWorkerThreadForEvent";
275
276    // Used to disable the use of direct byte buffers.  This enables much easier
277    // debugging, because the contents of a direct byte buffer cannot be
278    // viewed in most (all?) debuggers.
279    public static final String DISABLE_DIRECT_BYTE_BUFFER_USE_PROPERTY =
280        SUN_PREFIX + "transport.ORBDisableDirectByteBufferUse" ;
281
282    public static final String SOCKET        = "Socket";
283    public static final String SOCKETCHANNEL = "SocketChannel";
284
285    // POA related policies
286    public static final String PERSISTENT_SERVER_PORT_PROPERTY  = SUN_PREFIX + "POA.ORBPersistentServerPort" ;
287    public static final String SERVER_ID_PROPERTY               = SUN_PREFIX + "POA.ORBServerId" ;
288    public static final String BAD_SERVER_ID_HANDLER_CLASS_PROPERTY
289                                                                = SUN_PREFIX + "POA.ORBBadServerIdHandlerClass" ;
290    public static final String ACTIVATED_PROPERTY               = SUN_PREFIX + "POA.ORBActivated" ;
291    public static final String SERVER_NAME_PROPERTY             = SUN_PREFIX + "POA.ORBServerName" ;
292
293    // Server Properties; e.g. when properties passed to ORB activated
294    // servers
295
296    public static final String SERVER_DEF_VERIFY_PROPERTY       = SUN_PREFIX + "activation.ORBServerVerify" ;
297
298    // This one is an exception, but it may be externally visible
299    public static final String SUN_LC_PREFIX = "com.sun.corba." ;
300
301    // Necessary for package renaming to work correctly
302    public static final String SUN_LC_VERSION_PREFIX = "com.sun.corba.se.";
303
304    public static final String JTS_CLASS_PROPERTY               = SUN_LC_VERSION_PREFIX + "CosTransactions.ORBJTSClass" ;
305
306    // Property for enabling ORB's use of Java serialization.
307    public static final String ENABLE_JAVA_SERIALIZATION_PROPERTY =
308        SUN_PREFIX + "encoding.ORBEnableJavaSerialization";
309
310    // Constants for ORB prefixes **************************************************************
311
312    public static final String PI_ORB_INITIALIZER_CLASS_PREFIX   =
313        "org.omg.PortableInterceptor.ORBInitializerClass.";
314
315    public static final String USE_DYNAMIC_STUB_PROPERTY = SUN_PREFIX + "ORBUseDynamicStub" ;
316
317    public static final String DYNAMIC_STUB_FACTORY_FACTORY_CLASS =
318        SUN_PREFIX + "ORBDynamicStubFactoryFactoryClass" ;
319
320    // Constants for NameService properties ************************************
321
322    public static final int DEFAULT_INITIAL_PORT                 = 900;
323
324    public static final String DEFAULT_INS_HOST = "localhost";
325
326    public static final int DEFAULT_INS_PORT                     = 2089;
327
328    public static final int DEFAULT_INS_GIOP_MAJOR_VERSION       = 1;
329
330    // http://www.omg.org/cgi-bin/doc?ptc/00-08-07 [ Section 13.6.7.3 ]
331    // defines the default GIOP minor version to be 0.
332    public static final int DEFAULT_INS_GIOP_MINOR_VERSION       = 0;
333
334
335    // Constants for INS properties ********************************************
336
337    // GIOP Version number for validation of INS URL format addresses
338    public static final int MAJORNUMBER_SUPPORTED                 = 1;
339    public static final int MINORNUMBERMAX                        = 2;
340
341    // Subcontract's differentiation using the TRANSIENT and PERSISTENT
342    // Name Service Property.
343    public static final int TRANSIENT                             = 1;
344    public static final int PERSISTENT                            = 2;
345
346    // Constants for ORBD properties ****************************************************************
347
348    // These properties are never passed on ORB init: they are only passed to ORBD.
349
350    public static final String DB_DIR_PROPERTY                  = SUN_PREFIX + "activation.DbDir" ;
351    public static final String DB_PROPERTY                      = SUN_PREFIX + "activation.db" ;
352    public static final String ORBD_PORT_PROPERTY               = SUN_PREFIX + "activation.Port" ;
353    public static final String SERVER_POLLING_TIME              = SUN_PREFIX + "activation.ServerPollingTime";
354    public static final String SERVER_STARTUP_DELAY             = SUN_PREFIX + "activation.ServerStartupDelay";
355
356    public static final int DEFAULT_ACTIVATION_PORT             = 1049 ;
357
358    // If RI is starting the NameService then they would indicate that by
359    // passing the RI flag. That would start a Persistent Port to listen to
360    // INS request.
361    public static final int RI_NAMESERVICE_PORT                 = 1050;
362
363    public static final int DEFAULT_SERVER_POLLING_TIME         = 1000;
364
365    public static final int DEFAULT_SERVER_STARTUP_DELAY        = 1000;
366
367
368    //***************** Constants for Logging ****************
369
370    public static final String LOG_LEVEL_PROPERTY               = SUN_PREFIX + "ORBLogLevel";
371
372    public static final String LOG_RESOURCE_FILE                =
373        "com.sun.corba.se.impl.logging.LogStrings";
374
375    // Constants for initial references *************************************************************
376
377    public static final String TRANSIENT_NAME_SERVICE_NAME = "TNameService" ;
378    public static final String PERSISTENT_NAME_SERVICE_NAME = "NameService" ;
379
380    // A large Number to make sure that other ServerIds doesn't collide
381    // with NameServer Persistent Server Id
382    public static final String NAME_SERVICE_SERVER_ID   = "1000000" ;
383
384    public static final String ROOT_POA_NAME            = "RootPOA" ;
385    public static final String POA_CURRENT_NAME         = "POACurrent" ;
386    public static final String SERVER_ACTIVATOR_NAME    = "ServerActivator" ;
387    public static final String SERVER_LOCATOR_NAME      = "ServerLocator" ;
388    public static final String SERVER_REPOSITORY_NAME   = "ServerRepository" ;
389    public static final String INITIAL_NAME_SERVICE_NAME= "InitialNameService" ;
390    public static final String TRANSACTION_CURRENT_NAME = "TransactionCurrent" ;
391    public static final String DYN_ANY_FACTORY_NAME     = "DynAnyFactory" ;
392
393    // New for Portable Interceptors
394    public static final String PI_CURRENT_NAME          = "PICurrent" ;
395    public static final String CODEC_FACTORY_NAME       = "CodecFactory" ;
396
397    // Constants for ORBD DB ***********************************************************************
398
399    public static final String DEFAULT_DB_DIR       = "orb.db" ;
400    public static final String DEFAULT_DB_NAME      = "db" ;
401    public static final String INITIAL_ORB_DB       = "initial.db" ;
402    public static final String SERVER_LOG_DIR       = "logs" ;
403    public static final String ORBID_DIR_BASE       = "orbids" ;
404    public static final String ORBID_DB_FILE_NAME   = "orbids.db" ;
405
406    // Constants for ThreadPool ********************************************************************
407
408    // Default value for when inactive threads in the pool can stop running (ms)
409    public static final int DEFAULT_INACTIVITY_TIMEOUT = 120000;
410    // Default name of the threadpool
411    public static final String THREADPOOL_DEFAULT_NAME = "default-threadpool";
412    // Default name of the workqueue
413    public static final String WORKQUEUE_DEFAULT_NAME = "default-workqueue";
414
415    // Constants for minor code bases **************************************************************
416    // This is the value that pre-Merlin Sun ORBs incorrectly used.  We preserve this
417    // here for backwards compatibility, but note that the current ORB must never
418    // create a BAD_PARAM system exception with this minor code.
419    public static final int LEGACY_SUN_NOT_SERIALIZABLE = SUNVMCID.value + 1 ;
420
421    // Code Set related *******************************************************
422
423    // If we don't always send the code set context, there's a possibility
424    // of failure when fragments of a smaller request are interleved with
425    // those of a first request with other large service contexts.
426    //
427    public static final boolean DEFAULT_ALWAYS_SEND_CODESET_CTX = true;
428    public static final String ALWAYS_SEND_CODESET_CTX_PROPERTY
429        = SUN_PREFIX + "codeset.AlwaysSendCodeSetCtx";
430
431    // Use byte order markers in streams when applicable?  This won't apply to
432    // GIOP 1.1 due to limitations in the CDR encoding.
433    public static final boolean DEFAULT_USE_BYTE_ORDER_MARKERS = true;
434    public static final String USE_BOMS = SUN_PREFIX + "codeset.UseByteOrderMarkers";
435
436    // Use byte order markers in encapsulations when applicable?
437    public static final boolean DEFAULT_USE_BYTE_ORDER_MARKERS_IN_ENCAPS = false;
438    public static final String USE_BOMS_IN_ENCAPS = SUN_PREFIX + "codeset.UseByteOrderMarkersInEncaps";
439
440    // The CHAR_CODESETS and WCHAR_CODESETS allow the user to override the default
441    // connection code sets.  The value should be a comma separated list of OSF
442    // registry numbers.  The first number in the list will be the native code
443    // set.
444    //
445    // Number can be specified as hex if preceded by 0x, otherwise they are
446    // interpreted as decimal.
447    //
448    // Code sets that we accept currently (see core/OSFCodeSetRegistry):
449    //
450    // char/string:
451    //
452    // ISO8859-1 (Latin-1)     0x00010001
453    // ISO646 (ASCII)          0x00010020
454    // UTF-8                   0x05010001
455    //
456    // wchar/string:
457    //
458    // UTF-16                  0x00010109
459    // UCS-2                   0x00010100
460    // UTF-8                   0x05010001
461    //
462    // Note:  The ORB will let you assign any of the above values to
463    // either of the following properties, but the above assignments
464    // are the only ones that won't get you into trouble.
465    public static final String CHAR_CODESETS = SUN_PREFIX + "codeset.charsets";
466    public static final String WCHAR_CODESETS = SUN_PREFIX + "codeset.wcharsets";
467
468    // Constants to make stream format version code easier to read
469    public static final byte STREAM_FORMAT_VERSION_1 = (byte)1;
470    public static final byte STREAM_FORMAT_VERSION_2 = (byte)2;
471}
472