Classes | Static Public Member Functions | Static Public Attributes

alma.acs.container.ContainerSealant Class Reference

List of all members.

Classes

class  ComponentInterceptionHandler
class  ComponentInterceptionHandlerFactory

Static Public Member Functions

static< T > T createContainerSealant (Class< T > corbaInterface, Object component, String name, boolean isOffShoot, Logger logger, ClassLoader componentContextCL, String[] methodNamesExcludedFromInvocationLogging) throws AcsJContainerEx

Static Public Attributes

static final String CHECK_NULLS_CORBA_OUT_PROPERTYNAME = "alma.acs.container.check_nulls_corba_out"

Detailed Description

Seals the container to make it a "tight container", as opposed to an "open container". There's one sealant instance per component instance. The sealant is placed between the CORBA POATie on the one side, and the component implementation class or the component interface translator (if present) on the other side. The sealant therefore intercepts all functional calls made to the component.

This sealant class is not only used for components, but also for offshoots from that component, if they follow the tie-approach. Since ACS 9.0 it uses DynamicInterceptor.

Author:
hsommer

Member Function Documentation

static <T> T alma.acs.container.ContainerSealant.createContainerSealant ( Class< T corbaInterface,
Object  component,
String  name,
boolean  isOffShoot,
Logger  logger,
ClassLoader  componentContextCL,
String[]  methodNamesExcludedFromInvocationLogging 
) throws AcsJContainerEx [static]

Creates a ContainerSealant and uses it as the invocation handler for the returned dynamic proxy which implements corbaInterface.

Parameters:
corbaInterface the interface that the created sealant will implement; this should be the component's or offshoot's xxxOperations interface.
component the component/offshoot implementation class, or any translator class in front of the component implementation. componentImpl must implement corbaInterface so that the sealant can forward calls to the component.
Note about usage of java generics: Ideally this would be declared "T" instead of "Object", but did not get it to work with that...
name the component instance name (used for logging)
isOffShoot true if the component object is actually an offshoot of a component
logger logger to be used by this class
componentContextCL classloader used for Thread#setContextClassLoader(java.lang.ClassLoader setContextClassLoader) before component method gets invoked. (after the call, the old context CL will be restored.)
methodNamesExcludedFromInvocationLogging 
Returns:
an instance of corbaInterface that intercepts calls to componentImpl and forwards them if restrictions allow this.
Exceptions:
ContainerException if the given component Object does not implement the given corbaInterface.

Member Data Documentation

final String alma.acs.container.ContainerSealant.CHECK_NULLS_CORBA_OUT_PROPERTYNAME = "alma.acs.container.check_nulls_corba_out" [static]

If this property is enabled, the container will check the return value and out/inout parameters for illegal null values that will cause exceptions during subsequent corba marshalling.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties