/* * 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 org.jboss.com.sun.corba.se.spi.ior.iiop; import org.jboss.com.sun.corba.se.impl.ior.iiop.AlternateIIOPAddressComponentImpl; import org.jboss.com.sun.corba.se.impl.ior.iiop.CodeSetsComponentImpl; import org.jboss.com.sun.corba.se.impl.ior.iiop.IIOPAddressImpl; import org.jboss.com.sun.corba.se.impl.ior.iiop.IIOPProfileImpl; import org.jboss.com.sun.corba.se.impl.ior.iiop.IIOPProfileTemplateImpl; import org.jboss.com.sun.corba.se.impl.ior.iiop.JavaCodebaseComponentImpl; import org.jboss.com.sun.corba.se.impl.ior.iiop.JavaSerializationComponent; import org.jboss.com.sun.corba.se.impl.ior.iiop.MaxStreamFormatVersionComponentImpl; import org.jboss.com.sun.corba.se.impl.ior.iiop.ORBTypeComponentImpl; import org.jboss.com.sun.corba.se.impl.ior.iiop.RequestPartitioningComponentImpl; import org.jboss.com.sun.corba.se.impl.orbutil.ORBConstants; import org.jboss.com.sun.corba.se.spi.ior.EncapsulationFactoryBase; import org.jboss.com.sun.corba.se.spi.ior.Identifiable; import org.jboss.com.sun.corba.se.spi.ior.IdentifiableFactory; import org.jboss.com.sun.corba.se.spi.ior.ObjectId; import org.jboss.com.sun.corba.se.spi.ior.ObjectKeyTemplate; import org.jboss.com.sun.corba.se.spi.orb.ORB; import org.omg.CORBA_2_3.portable.InputStream; import org.omg.IOP.TAG_ALTERNATE_IIOP_ADDRESS; import org.omg.IOP.TAG_CODE_SETS; import org.omg.IOP.TAG_INTERNET_IOP; import org.omg.IOP.TAG_JAVA_CODEBASE; import org.omg.IOP.TAG_ORB_TYPE; import org.omg.IOP.TAG_RMI_CUSTOM_MAX_STREAM_FORMAT; /** * This class provides all of the factories for the IIOP profiles and components. This includes direct construction of * profiles and templates, as well as constructing factories that can be registered with an IdentifiableFactoryFinder. */ public abstract class IIOPFactories { private IIOPFactories() { } public static IdentifiableFactory makeRequestPartitioningComponentFactory() { return new EncapsulationFactoryBase(ORBConstants.TAG_REQUEST_PARTITIONING_ID) { public Identifiable readContents(InputStream in) { int threadPoolToUse = in.read_ulong(); Identifiable comp = new RequestPartitioningComponentImpl(threadPoolToUse); return comp; } }; } public static RequestPartitioningComponent makeRequestPartitioningComponent(int threadPoolToUse) { return new RequestPartitioningComponentImpl(threadPoolToUse); } public static IdentifiableFactory makeAlternateIIOPAddressComponentFactory() { return new EncapsulationFactoryBase(TAG_ALTERNATE_IIOP_ADDRESS.value) { public Identifiable readContents(InputStream in) { IIOPAddress addr = new IIOPAddressImpl(in); Identifiable comp = new AlternateIIOPAddressComponentImpl(addr); return comp; } }; } public static AlternateIIOPAddressComponent makeAlternateIIOPAddressComponent(IIOPAddress addr) { return new AlternateIIOPAddressComponentImpl(addr); } public static IdentifiableFactory makeCodeSetsComponentFactory() { return new EncapsulationFactoryBase(TAG_CODE_SETS.value) { public Identifiable readContents(InputStream in) { return new CodeSetsComponentImpl(in); } }; } public static CodeSetsComponent makeCodeSetsComponent(ORB orb) { return new CodeSetsComponentImpl(orb); } public static IdentifiableFactory makeJavaCodebaseComponentFactory() { return new EncapsulationFactoryBase(TAG_JAVA_CODEBASE.value) { public Identifiable readContents(InputStream in) { String url = in.read_string(); Identifiable comp = new JavaCodebaseComponentImpl(url); return comp; } }; } public static JavaCodebaseComponent makeJavaCodebaseComponent(String codebase) { return new JavaCodebaseComponentImpl(codebase); } public static IdentifiableFactory makeORBTypeComponentFactory() { return new EncapsulationFactoryBase(TAG_ORB_TYPE.value) { public Identifiable readContents(InputStream in) { int type = in.read_ulong(); Identifiable comp = new ORBTypeComponentImpl(type); return comp; } }; } public static ORBTypeComponent makeORBTypeComponent(int type) { return new ORBTypeComponentImpl(type); } public static IdentifiableFactory makeMaxStreamFormatVersionComponentFactory() { return new EncapsulationFactoryBase(TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.value) { public Identifiable readContents(InputStream in) { byte version = in.read_octet(); Identifiable comp = new MaxStreamFormatVersionComponentImpl(version); return comp; } }; } public static MaxStreamFormatVersionComponent makeMaxStreamFormatVersionComponent() { return new MaxStreamFormatVersionComponentImpl(); } public static IdentifiableFactory makeJavaSerializationComponentFactory() { return new EncapsulationFactoryBase(ORBConstants.TAG_JAVA_SERIALIZATION_ID) { public Identifiable readContents(InputStream in) { byte version = in.read_octet(); Identifiable cmp = new JavaSerializationComponent(version); return cmp; } }; } public static JavaSerializationComponent makeJavaSerializationComponent() { return JavaSerializationComponent.singleton(); } public static IdentifiableFactory makeIIOPProfileFactory() { return new EncapsulationFactoryBase(TAG_INTERNET_IOP.value) { public Identifiable readContents(InputStream in) { Identifiable result = new IIOPProfileImpl(in); return result; } }; } public static IIOPProfile makeIIOPProfile(ORB orb, ObjectKeyTemplate oktemp, ObjectId oid, IIOPProfileTemplate ptemp) { return new IIOPProfileImpl(orb, oktemp, oid, ptemp); } public static IIOPProfile makeIIOPProfile(ORB orb, org.omg.IOP.TaggedProfile profile) { return new IIOPProfileImpl(orb, profile); } public static IdentifiableFactory makeIIOPProfileTemplateFactory() { return new EncapsulationFactoryBase(TAG_INTERNET_IOP.value) { public Identifiable readContents(InputStream in) { Identifiable result = new IIOPProfileTemplateImpl(in); return result; } }; } public static IIOPProfileTemplate makeIIOPProfileTemplate(ORB orb, GIOPVersion version, IIOPAddress primary) { return new IIOPProfileTemplateImpl(orb, version, primary); } public static IIOPAddress makeIIOPAddress(ORB orb, String host, int port) { return new IIOPAddressImpl(orb, host, port); } public static IIOPAddress makeIIOPAddress(InputStream is) { return new IIOPAddressImpl(is); } }