Class POAImpl
java.lang.Object
org.omg.CORBA.LocalObject
com.sun.corba.ee.spi.oa.ObjectAdapterBase
com.sun.corba.ee.impl.oa.poa.POAImpl
- All Implemented Interfaces:
ObjectAdapter, Serializable, Object, IDLEntity, POA, POAOperations
POAImpl is the implementation of the Portable Object Adapter. It
contains an implementation of the POA interfaces specified in
COBRA 2.3.1 chapter 11 (formal/99-10-07). This implementation
is moving to comply with CORBA 3.0 due to the many clarifications
that have been made to the POA semantics since CORBA 2.3.1.
Specific comments have been added where 3.0 applies, but note that
we do not have the new 3.0 APIs yet.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionbyte[]activate_object(Servant servant) activate_objectSection 3.3.8.14voidactivate_object_with_id(byte[] id, Servant servant) activate_object_with_idSection 3.3.8.15create_id_assignment_policySection 3.3.8.5create_id_uniqueness_policySection 3.3.8.5create_implicit_activation_policySection 3.3.8.5create_lifespan_policySection 3.3.8.5create_POA(String name, POAManager theManager, Policy[] policies) create_POASection 3.3.8.2create_reference(String repId) create_reference3.3.8.17create_reference_with_id(byte[] oid, String repId) create_reference_with_id3.3.8.18create_request_processing_policySection 3.3.8.5create_servant_retention_policySection 3.3.8.5create_thread_policySection 3.3.8.5voiddeactivate_object(byte[] id) deactivate_object3.3.8.16voiddestroy(boolean etherealize, boolean wait_for_completion) destroySection 3.3.8.4voidenter()enter must be called before each request is invoked on a servant.voidexit()exit must be called after each request has been completed.find_POASection 3.3.8.3get_servantSection 3.3.8.12get_servant_managerSection 3.3.8.10getEffectivePolicy(int type) String[]getInterfaces(Object servant, byte[] objectId) Return the most derived interface for the given servant and objectId.voidGet the servant for the request given by the parameters.getLocalServant(byte[] objectId) Get the servant corresponding to the given objectId, if this is supported.intReturn the ID of the AdapterManager for this object adapter.protected org.glassfish.pfl.dynamic.copyobject.spi.ObjectCopierFactoryshortgetState()Return the current state of this object adapter (seeorg.omg.PortableInterceptorfor states).byte[]id()id11.3.8.26 in ptc/00-08-06id_to_reference(byte[] id) id_to_reference3.3.8.24id_to_servant(byte[] id) id_to_servant3.3.8.23byte[]reference_to_id(Object reference) reference_to_id3.3.8.22reference_to_servant(Object reference) reference_to_servant3.3.8.21voidCalled from the subcontract to let this POA cleanup after an invocation.byte[]servant_to_id(Servant servant) servant_to_id3.3.8.19servant_to_reference(Servant servant) servant_to_reference3.3.8.20voidset_servant(Servant defaultServant) set_servantSection 3.3.8.13voidset_servant_manager(ServantManager servantManager) set_servant_managerSection 3.3.8.10the_activatorSection 3.3.8.9voidthe_activator(AdapterActivator activator) the_activatorSection 3.3.8.9POA[]This attribute identifies the current set of all child POAs of the POA.the_name()the_nameSection 3.3.8.6the_parentSection 3.3.8.7the_POAManagerSection 3.3.8.8toString()Methods inherited from class ObjectAdapterBase
getAdapterId, getAdapterTemplate, getCurrentFactory, getIORTemplate, getORB, initializeTemplate, isNameService, makeInvocationInfo, makeObject, setCurrentFactory, setNameService, wrapperMethods inherited from class LocalObject
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface, _get_interface_def, _get_policy, _hash, _invoke, _is_a, _is_equivalent, _is_local, _non_existent, _orb, _release, _releaseReply, _request, _request, _servant_postinvoke, _servant_preinvoke, _set_policy_override, validate_connectionMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Object
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _is_a, _is_equivalent, _non_existent, _release, _request, _set_policy_override
-
Method Details
-
toString
-
create_POA
public POA create_POA(String name, POAManager theManager, Policy[] policies) throws AdapterAlreadyExists, InvalidPolicy create_POASection 3.3.8.2- Specified by:
create_POAin interfacePOAOperations- Parameters:
name- identifies the new POA with respect to other POAs with the same parent POA.theManager- specifies the POA Manager to be associated with the new POA.policies- specifies policy objects to be associated with the POA to control its behavior.- Returns:
- the new POA
- Throws:
AdapterAlreadyExists- specifies that the target POA already has a child POA with the specified name.InvalidPolicy- is raised if any of the policy objects are not valid for the ORB, or are in conflict, or require an administrative action that has not been performed.
-
find_POA
find_POASection 3.3.8.3- Specified by:
find_POAin interfacePOAOperations- Parameters:
name- POA name to be found.activate- if a POA with the specified name does not exist and the value of the activate_it parameter is TRUE, the target POA's AdapterActivator, if one exists, is invoked.- Returns:
- org.omg.PortableServer.POAPackage.POA if one exists or is activated by the AdapterActivator.
- Throws:
AdapterNonExistent- is raised if POA with a specified name cannot be found or activated using AdapaterActivator.
-
destroy
public void destroy(boolean etherealize, boolean wait_for_completion) destroySection 3.3.8.4- Specified by:
destroyin interfacePOAOperations- Parameters:
etherealize- flag to indicate whether etherealize operation on servant manager needs to be called.wait_for_completion- flag to indicate whether POA and its children need to wait for active requests and the etherealization to complete.
-
create_thread_policy
create_thread_policySection 3.3.8.5- Specified by:
create_thread_policyin interfacePOAOperations- Parameters:
value- policy type- Returns:
- ThreadPolcy Object
-
create_lifespan_policy
create_lifespan_policySection 3.3.8.5- Specified by:
create_lifespan_policyin interfacePOAOperations- Parameters:
value- policy type- Returns:
- LifespanPolicy Object.
-
create_id_uniqueness_policy
create_id_uniqueness_policySection 3.3.8.5- Specified by:
create_id_uniqueness_policyin interfacePOAOperations- Parameters:
value- policy type- Returns:
- IdUniquenessPolicy Object.
-
create_id_assignment_policy
create_id_assignment_policySection 3.3.8.5- Specified by:
create_id_assignment_policyin interfacePOAOperations- Parameters:
value- policy type- Returns:
- IdAssignmentPolicy Object.
-
create_implicit_activation_policy
public ImplicitActivationPolicy create_implicit_activation_policy(ImplicitActivationPolicyValue value) create_implicit_activation_policySection 3.3.8.5- Specified by:
create_implicit_activation_policyin interfacePOAOperations- Parameters:
value- policy type- Returns:
- ImplicitActivationPolicy Object.
-
create_servant_retention_policy
create_servant_retention_policySection 3.3.8.5- Specified by:
create_servant_retention_policyin interfacePOAOperations- Parameters:
value- policy type- Returns:
- ServantRetentionPolicy Object.
-
create_request_processing_policy
create_request_processing_policySection 3.3.8.5- Specified by:
create_request_processing_policyin interfacePOAOperations- Parameters:
value- policy type- Returns:
- RequestProcessingPolicy Object.
-
the_name
the_nameSection 3.3.8.6- Specified by:
the_namein interfacePOAOperations- Returns:
- name of the POA
-
the_parent
the_parentSection 3.3.8.7- Specified by:
the_parentin interfacePOAOperations- Returns:
- the parent of the POA
-
the_children
Description copied from interface:POAOperationsThis attribute identifies the current set of all child POAs of the POA. The set of child POAs includes only the POA's immediate children, and not their descendants.- Specified by:
the_childrenin interfacePOAOperations- Returns:
- the children of the POA
-
the_POAManager
the_POAManagerSection 3.3.8.8- Specified by:
the_POAManagerin interfacePOAOperations- Returns:
- the POA manager
-
the_activator
@ManagedAttribute(id="Activator") @Description("The AdapterActivator of this POA") public AdapterActivator the_activator()the_activatorSection 3.3.8.9- Specified by:
the_activatorin interfacePOAOperations
-
the_activator
the_activatorSection 3.3.8.9- Specified by:
the_activatorin interfacePOAOperations
-
get_servant_manager
get_servant_managerSection 3.3.8.10- Specified by:
get_servant_managerin interfacePOAOperations- Returns:
- org.omg.PortableServer.POAPackage.ServantManager associated with a POA or null if none exists.
- Throws:
WrongPolicy- raised if the USE_SERVANT_MANAGER policy is not specified.
-
set_servant_manager
set_servant_managerSection 3.3.8.10- Specified by:
set_servant_managerin interfacePOAOperations- Parameters:
servantManager- servant manager to be used as a default.- Throws:
WrongPolicy- raised if the USE_SERVANT_MANAGER policy is not specified.
-
get_servant
get_servantSection 3.3.8.12- Specified by:
get_servantin interfacePOAOperations- Returns:
- p_servant default servant associated with a POA.
- Throws:
NoServant- raised if no default servant is associated with the POA.WrongPolicy- raised if the USE_DEFAULT_SERVANT policy is not specified.
-
set_servant
set_servantSection 3.3.8.13- Specified by:
set_servantin interfacePOAOperations- Parameters:
defaultServant- servant to be used as a default.- Throws:
WrongPolicy- raised if the USE_DEFAULT_SERVANT policy is not specified.
-
activate_object
activate_objectSection 3.3.8.14- Specified by:
activate_objectin interfacePOAOperations- Parameters:
servant- servant to be associated with an object to be activated.- Returns:
- POA generated object id.
- Throws:
ServantAlreadyActive- is raised if the POA has UNIQUE_ID policy and servant is is already in the Active Object Map.WrongPolicy- raised if the SYSTEM_ID and RETAIN policies are not specified.
-
activate_object_with_id
public void activate_object_with_id(byte[] id, Servant servant) throws ObjectAlreadyActive, ServantAlreadyActive, WrongPolicy activate_object_with_idSection 3.3.8.15- Specified by:
activate_object_with_idin interfacePOAOperations- Parameters:
id- object id for the object to be activated.servant- servant to be associated with the object.- Throws:
ObjectAlreadyActive- raised if the object is already active in the POA.ServantAlreadyActive- raised if the POA has the UNIQUE_ID policy and the servant is already in the Active Object Map.WrongPolicy- raised if the RETAIN policy is is not specified.
-
deactivate_object
deactivate_object3.3.8.16- Specified by:
deactivate_objectin interfacePOAOperations- Parameters:
id- Object Id for the object to be deactivated.- Throws:
ObjectNotActive- if the object with the specified oid is not in the Active Object Map.WrongPolicy- raised if the RETAIN policy is is not specified.
-
create_reference
create_reference3.3.8.17- Specified by:
create_referencein interfacePOAOperations- Parameters:
repId- rep id for creating an object reference.- Returns:
- object reference created using intf.
- Throws:
WrongPolicy- if SYSTEM_ID policy is not specified.
-
create_reference_with_id
create_reference_with_id3.3.8.18- Specified by:
create_reference_with_idin interfacePOAOperations- Parameters:
oid- object id for creating an objrefrepId- rep id for creating an objref- Returns:
- object reference created using oid and intf
-
servant_to_id
servant_to_id3.3.8.19- Specified by:
servant_to_idin interfacePOAOperations- Parameters:
servant- servant for which the object disi returned.- Returns:
- object id associated with the servant.
- Throws:
ServantNotActive- if the above rules and policy combination is not met.WrongPolicy- if the USE_DEFAULT_SERVANT policy or a combination of the RETAIN policy and either the UNIQUE_ID or IMPLICIT_ACTIVATION policies are not present.
-
servant_to_reference
servant_to_reference3.3.8.20- Specified by:
servant_to_referencein interfacePOAOperations- Parameters:
servant- servant for which the object reference needs to be obtained.- Returns:
- object reference associated with the servant.
- Throws:
ServantNotActive- if the above specified policies and rules are not met.WrongPolicy- if the operation is not invoked in the context of executing a request on the specified servant and the required policies are not present.
-
reference_to_servant
public Servant reference_to_servant(Object reference) throws ObjectNotActive, WrongPolicy, WrongAdapter reference_to_servant3.3.8.21- Specified by:
reference_to_servantin interfacePOAOperations- Parameters:
reference- object reference for which the servant is returned.- Returns:
- servant associated with the reference.
- Throws:
ObjectNotActive- if the servant is not present in the Active Object Map (for RETAIN) or no default servant is registered (for USE_DEFAULT_POLICY).WrongPolicy- if neither the RETAIN policy or the USE_DEFAULT_SERVANT policy is present.WrongAdapter- if reference was not created by this POA instance.
-
reference_to_id
reference_to_id3.3.8.22- Specified by:
reference_to_idin interfacePOAOperations- Parameters:
reference- the object reference from which the object id needs to be returned.- Returns:
- object id encapsulated in the reference.
- Throws:
WrongAdapter- if the reference was not created by the POA specified in the reference.WrongPolicy- declared to allow future extensions.
-
id_to_servant
id_to_servant3.3.8.23- Specified by:
id_to_servantin interfacePOAOperations- Parameters:
id- object id for the which the servant is returned.- Returns:
- servant associated with oid.
- Throws:
ObjectNotActive- is raised if ObjectId is is not in the Active Object Map (for RETAIN policy), or no default servant is registered (for USE_DEFAULT_SERVANT policy).WrongPolicy- is raised if the RETAIN policy or the USE_DEFAULT_SERVANT policy is not present.
-
id_to_reference
id_to_reference3.3.8.24- Specified by:
id_to_referencein interfacePOAOperations- Parameters:
id- id of the object for which the reference is returned.- Returns:
- the object reference
- Throws:
ObjectNotActive- if the Object Id value is not active in the POA.WrongPolicy- if the RETAIN policy is not present.
-
id
public byte[] id()id11.3.8.26 in ptc/00-08-06- Specified by:
idin interfacePOAOperations- Returns:
- the unique id
-
getEffectivePolicy
- Specified by:
getEffectivePolicyin interfaceObjectAdapter- Specified by:
getEffectivePolicyin classObjectAdapterBase
-
getManagerId
public int getManagerId()Description copied from interface:ObjectAdapterReturn the ID of the AdapterManager for this object adapter.- Specified by:
getManagerIdin interfaceObjectAdapter- Specified by:
getManagerIdin classObjectAdapterBase- Returns:
- the identifier
-
getState
public short getState()Description copied from interface:ObjectAdapterReturn the current state of this object adapter (seeorg.omg.PortableInterceptorfor states).- Specified by:
getStatein interfaceObjectAdapter- Specified by:
getStatein classObjectAdapterBase- Returns:
- the current state of this object adapter
- See Also:
-
getInterfaces
Description copied from interface:ObjectAdapterReturn the most derived interface for the given servant and objectId.- Specified by:
getInterfacesin interfaceObjectAdapter- Specified by:
getInterfacesin classObjectAdapterBase- Parameters:
servant- servant objectobjectId- byte array forming the objectId- Returns:
- list of derived interfaces
-
getObjectCopierFactory
protected org.glassfish.pfl.dynamic.copyobject.spi.ObjectCopierFactory getObjectCopierFactory()- Specified by:
getObjectCopierFactoryin classObjectAdapterBase
-
enter
Description copied from interface:ObjectAdapterenter must be called before each request is invoked on a servant.- Specified by:
enterin interfaceObjectAdapter- Specified by:
enterin classObjectAdapterBase- Throws:
OADestroyed- is thrown when an OA has been destroyed, which requires a retry in the case where an AdapterActivator is present.
-
exit
public void exit()Description copied from interface:ObjectAdapterexit must be called after each request has been completed. If enter is called and completes normally, there must always be a corresponding exit. If enter throw OADestroyed, exit must NOT be called.- Specified by:
exitin interfaceObjectAdapter- Specified by:
exitin classObjectAdapterBase
-
getInvocationServant
Description copied from interface:ObjectAdapterGet the servant for the request given by the parameters. info must contain a valid objectId in this call. The servant is set in the InvocationInfo argument that is passed into this call.- Specified by:
getInvocationServantin interfaceObjectAdapter- Specified by:
getInvocationServantin classObjectAdapterBase- Parameters:
info- is the InvocationInfo object for the object reference
-
getLocalServant
Description copied from interface:ObjectAdapterGet the servant corresponding to the given objectId, if this is supported. This method is only used for models where the servant is an ObjectImpl, which allows the servant to be used directly as the stub. This allows an object reference to be replaced by its servant when it is unmarshalled locally. Such objects are not ORB mediated.- Specified by:
getLocalServantin interfaceObjectAdapter- Specified by:
getLocalServantin classObjectAdapterBase- Parameters:
objectId- byte array representing the object ID- Returns:
- corresponding servant
-
returnServant
public void returnServant()Called from the subcontract to let this POA cleanup after an invocation. Note: If getServant was called, then returnServant MUST be called, even in the case of exceptions. This may be called multiple times for a single request.- Specified by:
returnServantin interfaceObjectAdapter- Specified by:
returnServantin classObjectAdapterBase
-