String hostname = orb.getORBData().getORBServerHost();
if (iterator.hasNext()) {
// REVISIT - how does this play with legacy ORBD port exchange?
IIOPAddress iiopAddress =
IIOPFactories.makeIIOPAddress(orb, hostname, port);
AlternateIIOPAddressComponent iiopAddressComponent =
IIOPFactories.makeAlternateIIOPAddressComponent(iiopAddress);
while (iterator.hasNext()) {
TaggedProfileTemplate taggedProfileTemplate =
(TaggedProfileTemplate) iterator.next();
taggedProfileTemplate.add(iiopAddressComponent);
}
} else {
GIOPVersion version = orb.getORBData().getGIOPVersion();
int templatePort;
if (policies.forceZeroPort()) {
templatePort = 0;
} else if (policies.isTransient()) {
templatePort = port;
} else {
templatePort = orb.getLegacyServerSocketManager()
.legacyGetPersistentServerPort(SocketInfo.IIOP_CLEAR_TEXT);
}
IIOPAddress addr =
IIOPFactories.makeIIOPAddress(orb, hostname, templatePort);
IIOPProfileTemplate iiopProfile =
IIOPFactories.makeIIOPProfileTemplate(orb, version, addr);
if (version.supportsIORIIOPProfileComponents()) {
iiopProfile.add(IIOPFactories.makeCodeSetsComponent(orb));