1Implementation hierarchies in the IOR code 2 3Utility classes: 4 impl.ior.ByteBuffer class used to speed up computation of the adapter id 5 impl.ior.EncapsulationUtility misc. utilities for dealing with CDR encapsulation 6 impl.ior.FreezableList special list class that can change from mutable to immutable (one way only) 7 impl.ior.MinorCodes minor codes for all IOR errors 8 impl.ior.ORTImpl wrapper around IORTemplate for ORT 9 spi.ior.IORFactories factory for all basic IOR types 10 spi.ior.IIOP.???Factories factory for IIOP IOR factory types (IIOPProfile, IIOPProfileTemplate, 11 and all of the supported IIOP tagged component factories) 12 This needs to provide access to all of the IdentifiableFactory instances 13 we need for registration. It also needs to provide factory methods for 14 creating all of these types. 15 impl.ior.iiop.TaggedComponentFactories needs to be absorbed here. 16 17 18Support for non-registered (unknown) TaggedComponent and TaggedProfile instances 19 impl.ior.GenericIdEncapsulation 20 impl.ior.GenericTaggedComponent 21 impl.ior.GenericTaggedProfile 22 23Basic common representation for writing, getting ids, inherited lists: 24 spi.ior.IdentifiableContainerBase 25 spi.ior.Writeable 26 spi.ior.Identifiable 27 spi.ior.IdentifiableBase 28 29Some basic IOR types and their implementation: 30 spi.ior.IOR 31 impl.ior.IORImpl 32 33 spi.ior.IORTemplate 34 impl.ior.IORTemplateImpl 35 36 spi.ior.IdentifiableFactory (the basic factory type, which is never created in the spi.ior package. 37 All instances of this factory are necessarily protocol dependent, for example IIOP in the 38 spi.ior.iiop package). 39 spi.ior.IdentifiableFactoryFinder 40 impl.ior.IdentifiableFactoryFinderBase 41 impl.ior.TaggedComponentFactoryFinderImpl 42 impl.ior.TaggedProfileFactoryFinderImpl 43 44 spi.ior.ObjectAdapterId 45 impl.ior.ObjectAdapterIdBase 46 impl.ior.ObjectAdapterIdArray 47 impl.ior.ObjectAdapterIdNumber 48 49 spi.ior.ObjectId 50 impl.ior.ObjectIdImpl 51 52 spi.ior.ObjectKey 53 impl.ior.ObjectKeyImpl 54 55The ObjectKeyTemplate family, which needs some work for pluggability yet: 56 impl.ior.ObjectKeyFactory 57 impl.ior.ObjectKeyTemplateFactory : should this be in the SPI? 58 spi.ior.ObjectKeyTemplate 59 impl.ior.WireObjectKeyTemplate 60 impl.ior.ObjectKeyTemplateBase 61 impl.ior.OldObjectKeyTemplateBase 62 impl.ior.OldJIDLObjectKeyTemplate 63 impl.ior.OldPOAObjectKeyTemplate 64 impl.ior.NewObjectKeyTemplateBase 65 impl.ior.JIDLObjectKeyTemplate 66 impl.ior.POAObjectKeyTemplate 67 68IIOP types and their implementations: 69 spi.ior.TaggedComponent 70 spi.ior.TaggedComponentBase 71 impl.ior.iiop.AlternateIIOPAddressComponent 72 impl.ior.iiop.CodeSetsComponent 73 impl.ior.iiop.JavaCodebaseComponent 74 impl.ior.iiop.MaxStreamFormatVersionComponent 75 impl.ior.iiop.ORBTypeComponent 76 impl.ior.iiop.PoliciesComponent 77 78 spi.ior.TaggedProfile 79 spi.ior.iiop.IIOPProfile 80 impl.ior.iiop.IIOPProfileImpl 81 82 spi.ior.TaggedProfileTemplate 83 spi.ior.iiop.IIOPProfileTemplate 84 impl.ior.iiop.IIOPProfileTemplateImpl 85 86 spi.ior.iiop.IIOPAddress 87 impl.ior.iiop.IIOPAddressBase 88 impl.ior.iiop.IIOPAddressFutureImpl 89 impl.ior.iiop.IIOPAddressImpl 90 91Issues: 92 931. GIOPVersion.chooseRequestVersion( ORB, IOR ) is not well-defined: it should be 94 (ORB, IIOPProfile). 95 Call sites: 96 Connection.locate: not used 97 Called from GIOPImpl.locate: not used 98 CorbaContactInfoImpl.createMessageMediator 99 This needs a version that looks only at a single profile. 100 1012. MessageBase.createRequest takes an IOR instead of an IIOPProfile. 102 1033. CDRInputStream_1_0.read_Object( Class ) calls IOR.getCodebase() in 104 a call to Utility.loadStubClass, which is 105 only defined on a profile. What do we do here? 106 Similar problem in same class internalIORToObject, which call IOR.getServant 107 and IOR.getCodebase. IOR.getCodeBase is called in loadStub. 108