IIOPFactories.java revision 608:7e06bf1dcb09
123693Speter/* 21590Srgrimes * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved. 31590Srgrimes * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 41590Srgrimes * 51590Srgrimes * This code is free software; you can redistribute it and/or modify it 61590Srgrimes * under the terms of the GNU General Public License version 2 only, as 71590Srgrimes * published by the Free Software Foundation. Oracle designates this 81590Srgrimes * particular file as subject to the "Classpath" exception as provided 91590Srgrimes * by Oracle in the LICENSE file that accompanied this code. 101590Srgrimes * 111590Srgrimes * This code is distributed in the hope that it will be useful, but WITHOUT 121590Srgrimes * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 131590Srgrimes * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 141590Srgrimes * version 2 for more details (a copy is included in the LICENSE file that 151590Srgrimes * accompanied this code). 161590Srgrimes * 171590Srgrimes * You should have received a copy of the GNU General Public License version 181590Srgrimes * 2 along with this work; if not, write to the Free Software Foundation, 191590Srgrimes * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 201590Srgrimes * 211590Srgrimes * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 221590Srgrimes * or visit www.oracle.com if you need additional information or have any 231590Srgrimes * questions. 241590Srgrimes */ 251590Srgrimes 261590Srgrimespackage com.sun.corba.se.spi.ior.iiop ; 271590Srgrimes 2823693Speterimport org.omg.CORBA_2_3.portable.InputStream ; 2950477Speter 301590Srgrimesimport com.sun.corba.se.spi.ior.Identifiable ; 31240506Seadlerimport com.sun.corba.se.spi.ior.IdentifiableFactory ; 321590Srgrimesimport com.sun.corba.se.spi.ior.EncapsulationFactoryBase ; 3379535Sruimport com.sun.corba.se.spi.ior.ObjectId ; 341590Srgrimesimport com.sun.corba.se.spi.ior.ObjectKeyTemplate ; 351590Srgrimes 361590Srgrimesimport com.sun.corba.se.spi.ior.iiop.IIOPAddress ; 371590Srgrimesimport com.sun.corba.se.spi.ior.iiop.IIOPProfileTemplate ; 3868963Sruimport com.sun.corba.se.spi.ior.iiop.GIOPVersion ; 39168632Sdes 4070197Sruimport com.sun.corba.se.spi.orb.ORB ; 4170197Sru 421590Srgrimesimport com.sun.corba.se.impl.encoding.MarshalInputStream ; 431590Srgrimes 4468963Sruimport com.sun.corba.se.impl.ior.iiop.IIOPAddressImpl ; 4595083Scharnierimport com.sun.corba.se.impl.ior.iiop.CodeSetsComponentImpl ; 461590Srgrimesimport com.sun.corba.se.impl.ior.iiop.AlternateIIOPAddressComponentImpl ; 471590Srgrimesimport com.sun.corba.se.impl.ior.iiop.JavaCodebaseComponentImpl ; 48107262Sruimport com.sun.corba.se.impl.ior.iiop.MaxStreamFormatVersionComponentImpl ; 49100521Sumeimport com.sun.corba.se.impl.ior.iiop.JavaSerializationComponent; 50100521Sumeimport com.sun.corba.se.impl.ior.iiop.ORBTypeComponentImpl ; 51100521Sumeimport com.sun.corba.se.impl.ior.iiop.IIOPProfileImpl ; 52100521Sumeimport com.sun.corba.se.impl.ior.iiop.IIOPProfileTemplateImpl ; 53100521Sumeimport com.sun.corba.se.impl.ior.iiop.RequestPartitioningComponentImpl ; 54100521Sumeimport com.sun.corba.se.impl.orbutil.ORBConstants; 55100521Sumeimport com.sun.corba.se.impl.orbutil.ORBConstants; 56100521Sume 571590Srgrimesimport org.omg.IOP.TAG_ALTERNATE_IIOP_ADDRESS ; 5895083Scharnierimport org.omg.IOP.TAG_CODE_SETS ; 591590Srgrimesimport org.omg.IOP.TAG_JAVA_CODEBASE ; 602537Spstimport org.omg.IOP.TAG_RMI_CUSTOM_MAX_STREAM_FORMAT ; 6157670Ssheldonhimport org.omg.IOP.TAG_ORB_TYPE ; 6257670Ssheldonhimport org.omg.IOP.TAG_INTERNET_IOP ; 632537Spst 642537Spst/** This class provides all of the factories for the IIOP profiles and 6567483Sru * components. This includes direct construction of profiles and templates, 6667483Sru * as well as constructing factories that can be registered with an 6767483Sru * IdentifiableFactoryFinder. 6867483Sru */ 691590Srgrimespublic abstract class IIOPFactories { 701590Srgrimes private IIOPFactories() {} 711590Srgrimes 7269909Sru public static IdentifiableFactory makeRequestPartitioningComponentFactory() 7369909Sru { 7469909Sru return new EncapsulationFactoryBase(ORBConstants.TAG_REQUEST_PARTITIONING_ID) { 7572109Scharnier public Identifiable readContents(InputStream in) 762537Spst { 772537Spst int threadPoolToUse = in.read_ulong(); 781590Srgrimes Identifiable comp = 791590Srgrimes new RequestPartitioningComponentImpl(threadPoolToUse); 801590Srgrimes return comp; 812537Spst } 822537Spst }; 832537Spst } 842537Spst 852537Spst public static RequestPartitioningComponent makeRequestPartitioningComponent( 862537Spst int threadPoolToUse) 872537Spst { 882537Spst return new RequestPartitioningComponentImpl(threadPoolToUse); 892537Spst } 902537Spst 9199249Smini public static IdentifiableFactory makeAlternateIIOPAddressComponentFactory() 9299249Smini { 93131491Sru return new EncapsulationFactoryBase(TAG_ALTERNATE_IIOP_ADDRESS.value) { 94131491Sru public Identifiable readContents( InputStream in ) 9599249Smini { 9699249Smini IIOPAddress addr = new IIOPAddressImpl( in ) ; 9799249Smini Identifiable comp = 98117010Sjmallett new AlternateIIOPAddressComponentImpl( addr ) ; 99202756Sed return comp ; 1001590Srgrimes } 10195083Scharnier } ; 1021590Srgrimes } 1031590Srgrimes 1041590Srgrimes public static AlternateIIOPAddressComponent makeAlternateIIOPAddressComponent( 1052537Spst IIOPAddress addr ) 106107262Sru { 107107262Sru return new AlternateIIOPAddressComponentImpl( addr ) ; 108107262Sru } 1091590Srgrimes 110107262Sru public static IdentifiableFactory makeCodeSetsComponentFactory() 1111590Srgrimes { 1121590Srgrimes return new EncapsulationFactoryBase(TAG_CODE_SETS.value) { 1131590Srgrimes public Identifiable readContents( InputStream in ) 1141590Srgrimes { 1151590Srgrimes return new CodeSetsComponentImpl( in ) ; 1161590Srgrimes } 1171590Srgrimes } ; 1181590Srgrimes } 1191590Srgrimes 1201590Srgrimes public static CodeSetsComponent makeCodeSetsComponent( ORB orb ) 1212537Spst { 1221590Srgrimes return new CodeSetsComponentImpl( orb ) ; 1231590Srgrimes } 1241590Srgrimes 1251590Srgrimes public static IdentifiableFactory makeJavaCodebaseComponentFactory() 1261590Srgrimes { 1271590Srgrimes return new EncapsulationFactoryBase(TAG_JAVA_CODEBASE.value) { 1281590Srgrimes public Identifiable readContents( InputStream in ) 1291590Srgrimes { 1302537Spst String url = in.read_string() ; 1312537Spst Identifiable comp = new JavaCodebaseComponentImpl( url ) ; 1322537Spst return comp ; 1332537Spst } 1341590Srgrimes } ; 13595083Scharnier } 1361590Srgrimes 1371590Srgrimes public static JavaCodebaseComponent makeJavaCodebaseComponent( 1381590Srgrimes String codebase ) 13968963Sru { 1401590Srgrimes return new JavaCodebaseComponentImpl( codebase ) ; 141107262Sru } 142107262Sru 143107262Sru public static IdentifiableFactory makeORBTypeComponentFactory() 1441590Srgrimes { 145107262Sru return new EncapsulationFactoryBase(TAG_ORB_TYPE.value) { 1461590Srgrimes public Identifiable readContents( InputStream in ) 1471590Srgrimes { 1481590Srgrimes int type = in.read_ulong() ; 1491590Srgrimes Identifiable comp = new ORBTypeComponentImpl( type ) ; 1501590Srgrimes return comp ; 1511590Srgrimes } 1521590Srgrimes } ; 1531590Srgrimes } 1541590Srgrimes 1551590Srgrimes public static ORBTypeComponent makeORBTypeComponent( int type ) 1561590Srgrimes { 15768963Sru return new ORBTypeComponentImpl( type ) ; 1581590Srgrimes } 1591590Srgrimes 1601590Srgrimes public static IdentifiableFactory makeMaxStreamFormatVersionComponentFactory() 1611590Srgrimes { 16268963Sru return new EncapsulationFactoryBase(TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.value) { 1631590Srgrimes public Identifiable readContents(InputStream in) 1641590Srgrimes { 1651590Srgrimes byte version = in.read_octet() ; 1661590Srgrimes Identifiable comp = new MaxStreamFormatVersionComponentImpl(version); 1671590Srgrimes return comp ; 1681590Srgrimes } 1691590Srgrimes }; 1701590Srgrimes } 1711590Srgrimes 17268963Sru public static MaxStreamFormatVersionComponent makeMaxStreamFormatVersionComponent() 1731590Srgrimes { 1741590Srgrimes return new MaxStreamFormatVersionComponentImpl() ; 17595083Scharnier } 17695083Scharnier 17795083Scharnier public static IdentifiableFactory makeJavaSerializationComponentFactory() { 1781590Srgrimes return new EncapsulationFactoryBase( 1791590Srgrimes ORBConstants.TAG_JAVA_SERIALIZATION_ID) { 1801590Srgrimes public Identifiable readContents(InputStream in) { 1811590Srgrimes byte version = in.read_octet(); 1821590Srgrimes Identifiable cmp = new JavaSerializationComponent(version); 1831590Srgrimes return cmp; 1841590Srgrimes } 1851590Srgrimes }; 1861590Srgrimes } 1871590Srgrimes 1881590Srgrimes public static JavaSerializationComponent makeJavaSerializationComponent() { 1891590Srgrimes return JavaSerializationComponent.singleton(); 1901590Srgrimes } 1911590Srgrimes 1921590Srgrimes public static IdentifiableFactory makeIIOPProfileFactory() 1935369Sjkh { 1945369Sjkh return new EncapsulationFactoryBase(TAG_INTERNET_IOP.value) { 195107262Sru public Identifiable readContents( InputStream in ) 1965369Sjkh { 197150316Sdds Identifiable result = new IIOPProfileImpl( in ) ; 19868963Sru return result ; 1995369Sjkh } 20064775Sbrian } ; 20164775Sbrian } 20264775Sbrian 20364775Sbrian public static IIOPProfile makeIIOPProfile( ORB orb, ObjectKeyTemplate oktemp, 20464775Sbrian ObjectId oid, IIOPProfileTemplate ptemp ) 205108257Sru { 20664775Sbrian return new IIOPProfileImpl( orb, oktemp, oid, ptemp ) ; 20765069Ssheldonh } 20865064Sbrian 2092589Spst public static IIOPProfile makeIIOPProfile( ORB orb, 21095083Scharnier org.omg.IOP.TaggedProfile profile ) 21195083Scharnier { 21295083Scharnier return new IIOPProfileImpl( orb, profile ) ; 2132589Spst } 2142589Spst 2152589Spst public static IdentifiableFactory makeIIOPProfileTemplateFactory() 21668963Sru { 2172589Spst return new EncapsulationFactoryBase(TAG_INTERNET_IOP.value) { 21823693Speter public Identifiable readContents( InputStream in ) 219202756Sed { 22064775Sbrian Identifiable result = new IIOPProfileTemplateImpl( in ) ; 22164775Sbrian return result ; 222202756Sed } 22323693Speter } ; 22423693Speter } 2251590Srgrimes 2261590Srgrimes public static IIOPProfileTemplate makeIIOPProfileTemplate( ORB orb, 2271590Srgrimes GIOPVersion version, IIOPAddress primary ) 2281590Srgrimes { 22964775Sbrian return new IIOPProfileTemplateImpl( orb, version, primary ) ; 23079366Sru } 23127836Swollman 23227836Swollman public static IIOPAddress makeIIOPAddress( ORB orb, String host, int port ) 23327836Swollman { 23427836Swollman return new IIOPAddressImpl( orb, host, port ) ; 23527836Swollman } 23627836Swollman 2371590Srgrimes public static IIOPAddress makeIIOPAddress( InputStream is ) 2381590Srgrimes { 23968963Sru return new IIOPAddressImpl( is ) ; 2401590Srgrimes } 2411590Srgrimes} 242168657Sru