FileDocCategorySizeDatePackage
MessageListenerConfigParserImpl.javaAPI DocGlassfish v2 API11193Fri May 04 22:34:26 BST 2007com.sun.enterprise.connectors.util

MessageListenerConfigParserImpl

public class MessageListenerConfigParserImpl extends Object implements MessageListenerConfigParser
This is message listener configuration parser. It parses the ra.xml file for the message listener specific configurations like activationSpec javabean properties, message listener types .
author
Srikanth P

Fields Summary
static Logger
_logger
Constructors Summary
public MessageListenerConfigParserImpl()
Default constructor.

   
            

      

    
Methods Summary
public java.lang.StringgetActivationSpecClass(ConnectorDescriptor desc, java.lang.String messageListenerType)
Return the ActivationSpecClass name for given rar and messageListenerType

param
desc ConnectorDescriptor pertaining to rar.
param
messageListenerType MessageListener type
throws
ConnectorRuntimeException If moduleDir is null. If corresponding rar is not deployed.

        if(desc == null) {
            throw new ConnectorRuntimeException("Invalid arguments");
        }

        MessageListener messageListeners[] = 
               ddTransformUtil.getMessageListeners(desc);

        if(messageListeners != null) {
            for(int i=0;i<messageListeners.length;++i) {
                if(messageListenerType.equals( 
                           messageListeners[i].getMessageListenerType())){
                    return messageListeners[i].getActivationSpecClass();
                }
            }
        }
        return null; 
    
public java.util.PropertiesgetJavaBeanProps(ConnectorDescriptor desc, java.lang.String messageListenerType, java.lang.String rarName)
Parses the ra.xml for the ActivationSpec javabean properties. The ActivationSpec to be parsed is identified by the moduleDir where ra.xml is present and the message listener type. message listener type will be unique in a given ra.xml. It throws ConnectorRuntimeException if either or both the parameters are null, if corresponding rar is not deployed, if message listener type mentioned as parameter is not found in ra.xml. If rar is deployed and message listener (type mentioned) is present but no properties are present for the corresponding message listener, null is returned.

param
desc ConnectorDescriptor pertaining to rar.
param
messageListenerType message listener type.It is uniqie across all sub-elements in element in a given rar.
return
Javabean properties with the property names and values of properties. The property values will be the values mentioned in ra.xml if present. Otherwise it will be the default values obtained by introspecting the javabean. In both the case if no value is present, empty String is returned as the value.
throws
ConnectorRuntimeException if either of the parameters are null. If corresponding rar is not deployed i.e moduleDir is invalid. If messagelistener type is not found in ra.xml


        if(desc == null || messageListenerType == null) {
            throw new ConnectorRuntimeException("Invalid arguments");
        }
       
        MessageListener allMessageListeners[] = 
               ddTransformUtil.getMessageListeners(desc);

        MessageListener messageListener = null;
        for(int i=0;i<allMessageListeners.length;++i) {
            if(messageListenerType.equals(
                    allMessageListeners[i].getMessageListenerType())) {
                messageListener = allMessageListeners[i];
            }
        }

        if(messageListener == null) {
            _logger.log(Level.FINE,
                    "No such MessageListener found in ra.xml", 
                    messageListenerType);
            throw new ConnectorRuntimeException(
                  "No such MessageListener found in ra.xml : " + 
                  messageListenerType);
        }

        /* ddVals           -> Properties present in ra.xml
        *  introspectedVals -> All properties with values
        *                      obtained by introspection of resource
        *                      adapter javabean
        *  mergedVals       -> merged props of raConfigPros and
        *                      allraConfigPropsWithDefVals
        */

        Properties mergedVals = null;
        Set ddVals = messageListener.getConfigProperties();
        String className = messageListener.getActivationSpecClass();
        if(className != null && className.length() != 0) {
            Properties introspectedVals = configParserUtil.introspectJavaBean(
                               className,ddVals);
            mergedVals = configParserUtil.mergeProps(ddVals,introspectedVals);
        }
        return mergedVals;
    
public java.util.PropertiesgetJavaBeanReturnTypes(ConnectorDescriptor desc, java.lang.String messageListenerType)
Returns the Properties object consisting of propertyname as the key and datatype as the value.

param
moduleDir The directory where rar is exploded.
param
messageListenerType message listener type.It is uniqie across all sub-elements in element in a given rar.
return
Properties object with the property names(key) and datatype of property(as value).
throws
ConnectorRuntimeException if either of the parameters are null. If corresponding rar is not deployed i.e moduleDir is invalid. If messagelistener type is not found in ra.xml


        if(desc == null || messageListenerType == null) {
            throw new ConnectorRuntimeException("Invalid arguments");
        }

        MessageListener allMessageListeners[] = 
               ddTransformUtil.getMessageListeners(desc);

        MessageListener messageListener = null;
        for(int i=0;i<allMessageListeners.length;++i) {
            if(messageListenerType.equals(
                    allMessageListeners[i].getMessageListenerType())) {
                messageListener = allMessageListeners[i];
            }
        }

        if(messageListener == null) {
            _logger.log(Level.FINE,
                    "No such MessageListener found in ra.xml", 
                    messageListenerType);
            throw new ConnectorRuntimeException(
                  "No such MessageListener found in ra.xml : " + 
                  messageListenerType);
        }

        /* ddVals           -> Properties present in ra.xml
        *  introspectedVals -> All properties with values
        *                      obtained by introspection of resource
        *                      adapter javabean
        *  mergedVals       -> merged props of raConfigPros and
        *                      allraConfigPropsWithDefVals
        */

        Properties mergedVals = null;
        Set ddVals = messageListener.getConfigProperties();
        String className = messageListener.getActivationSpecClass();
        if(className != null && className.length() != 0) {
            Properties introspectedVals = 
               configParserUtil.introspectJavaBeanReturnTypes(className,ddVals);
            mergedVals = configParserUtil.mergePropsReturnTypes(
                                              ddVals,introspectedVals);
        }
        return mergedVals;
    
public java.lang.String[]getMessageListenerTypes(ConnectorDescriptor desc)


        if(desc == null) {
            throw new ConnectorRuntimeException("Invalid arguments");
        }

        MessageListener messageListeners[] = 
               ddTransformUtil.getMessageListeners(desc);

        String[] messageListenerTypes = null;
        if(messageListeners != null) {
            messageListenerTypes = new String[messageListeners.length];
            for(int i=0;i<messageListeners.length;++i) {
                messageListenerTypes[i] = 
                           messageListeners[i].getMessageListenerType();
            }
        }
        return messageListenerTypes;