import org.omg.CORBA.*; import org.omg.PortableServer.*; //import org.omg.PortableServer.POAPackage.*; public class PoaUtil { public static POA create_basic_POA( POA parentPOA, POAManager POAManager, String POAName, boolean isMultiThread, boolean isPersistent) throws org.omg.PortableServer.POAPackage.InvalidPolicy, org.omg.PortableServer.POAPackage.AdapterAlreadyExists { Policy policies[] = new Policy[3]; int i = 0; ThreadPolicyValue threadPolicy = null; if (isMultiThread) { threadPolicy = ThreadPolicyValue.ORB_CTRL_MODEL; } else { threadPolicy = ThreadPolicyValue.SINGLE_THREAD_MODEL; } policies[i] = parentPOA.create_thread_policy(threadPolicy); LifespanPolicyValue lifespanPolicy = null; IdAssignmentPolicyValue idAssignPolicy = null; if (isPersistent) { lifespanPolicy = LifespanPolicyValue.PERSISTENT; idAssignPolicy = IdAssignmentPolicyValue.USER_ID; } else { lifespanPolicy = LifespanPolicyValue.TRANSIENT; idAssignPolicy = IdAssignmentPolicyValue.SYSTEM_ID; } policies[++i] = parentPOA.create_lifespan_policy(lifespanPolicy); policies[++i] = parentPOA.create_id_assignment_policy(idAssignPolicy); /* Using the default values for: IdUniqueness Policy UNIQUE_ID ImplicitActivation NO_IMPLICIT_ACTIVATION RequestProcessing USE_ACTIVE_OBJECT_MAP_ONLY ServantRetention RETAIN */ return parentPOA.create_POA(POAName, POAManager, policies); } }