Public Member Functions | |
ComponentHelper (Logger containerLogger) | |
Protected Member Functions | |
final Logger | getComponentLogger () |
final synchronized ComponentLifecycle | getComponentImpl () throws AcsJComponentCreationEx, AcsJJavaComponentHelperEx |
abstract ComponentLifecycle | _createComponentImpl () throws AcsJComponentCreationEx |
abstract Class<?extends Servant > | _getPOATieClass () |
abstract Class<?extends ACSComponentOperations > | _getOperationsInterface () |
Class<?> | getInternalInterface () throws AcsJJavaComponentHelperEx |
Object | _getInterfaceTranslator (Object defaultInterfaceTranslator) throws AcsJJavaComponentHelperEx |
String[] | _getComponentMethodsExcludedFromInvocationLogging () |
boolean | requiresOrbCentralLogSuppression () |
Protected Attributes | |
String | componentInstanceName |
Package Functions | |
final void | setComponentInstanceName (String name) |
final Class<?extends Servant > | getPOATieClass () throws AcsJJavaComponentHelperEx |
final Class<?extends ACSComponentOperations > | getOperationsInterface () throws AcsJJavaComponentHelperEx |
final Object | getInterfaceTranslator () throws AcsJJavaComponentHelperEx |
final String[] | getComponentMethodsExcludedFromInvocationLogging () |
Private Attributes | |
ComponentLifecycle | m_componentImpl |
final Logger | m_containerLogger |
COMPONENT_HELPERS=on
Makefile setting).
The method implementations in this class perform checks on the data returned from the subclass methods (framework-style design). In that sense, ComponentHelper
is part of the container, whereas its subclass belongs to the component.
The methods that return a Class
object should be implemented like return XxxPOATie.class;
so that the absence of this class can be discovered at compile time. (Therefore don't use classForName
which evades compile time checking.)
|
Subclasses must override and call this constructor ("<code>super(containerLogger)</code>").
|
|
Method _createComponentImpl to be provided by subclasses. Must return the same object that also implements the functional component interface.
|
|
Tells the container to not automatically log calls to certain component interface methods. This method may be overridden by helper subclasses, since the default behavior is for the container to log all component method invocations except
Dealing with OffShoots: offshoots that follow the Corba Tie-approach enjoy automatic method invocation logging just like components do. In the rare event that you explicitly activate offshoots from your component, and want to suppress automatic logging for certain methods, return
Note that returning
|
|
To be overridden by subclass only if it wants its own interface translator to be used.
The returned interface translator must implement the component's operations interface, and must take care of translating
It is foreseen that the necessary translations for most methods will be done automatically by the dynamic proxy classes. Some methods may require manual translation, e.g. if an expression that involves xml entity classes is too complex for the dynamic proxy.
To facilitate the implementation of a manual interface translator, the
|
|
Gets the xxOperations interface as generated by the IDL compiler. This method must be provided by the component helper class.
|
|
This method must be provided by the component helper class. It must return the Class of the IDL-generated POA-Tie Servant, as in |
|
Gets the component implementation. Must be the same object that also implements the functional interface obtained from
|
|
Gets the component logger.
|
|
|
|
Method getInterfaceTranslator. Called by the container framework.
|
|
Gets the component's implemented functional IF. For instance, the method signatures can be the same as in the operations interface, except that the internal interface uses xml binding classes where the IDL-generated operations interface only contains stringified XML. To be overridden by the component helper class only if the InternalInterface differs from the OperationsInterface.
|
|
Gets the xxOperations interface as generated by the IDL compiler by calling _getOperationsInterface().
|
|
Gets the
|
|
Do not overwrite this method unless you absolutely need to (currently only for the archive logger component!)
If
Note that This method addresses the special problem of an infrastructural component that receives log messages from the Log service and writes them to the archive. Any message logged by the ORB on the receiver side would go back to the Log service and be received by the infrastructural component, with positive feedback leading to an explosion of log messages. Therefore we can't rely on log level settings and must categorically rule out such feedback loops.
|
|
Allows the container to set the component instance name. This name is used for the component logger and may also be useful in other ways. Note that in a better design this name should be given in the constructor, but was added here as a separate method to avoid modifying existing component helper classes.
|
|
|
|
|
|
|