package org.jacorb.test.orb; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.jacorb.orb.iiop.IIOPAddress; import org.omg.CORBA.LocalObject; import org.omg.IOP.TAG_ALTERNATE_IIOP_ADDRESS; import org.omg.IOP.TAG_INTERNET_IOP; import org.omg.IOP.TaggedComponent; import org.omg.PortableInterceptor.IORInfo; import org.omg.PortableInterceptor.IORInterceptor; /** * An IOR Interceptor that adds alternate addresses to IIOP Profiles. * * @author Andre Spiegel */ public class IIOPAddressInterceptor extends LocalObject implements IORInterceptor { public static List<IIOPAddress> alternateAddresses = new ArrayList<IIOPAddress>(); public void establish_components(IORInfo info) { for (Iterator<IIOPAddress> i = alternateAddresses.iterator(); i.hasNext();) { IIOPAddress addr = i.next(); info.add_ior_component_to_profile ( new TaggedComponent ( TAG_ALTERNATE_IIOP_ADDRESS.value, addr.toCDR() ), TAG_INTERNET_IOP.value ); } } public String name() { return "IIOPAddressInterceptor"; } public void destroy() { alternateAddresses.clear(); } }