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

AdminObjectConfigParserImpl

public class AdminObjectConfigParserImpl extends Object implements AdminObjectConfigParser
This is AdminObject configuration parser. It parses the ra.xml file for the admin object specific configurations like AdminObject javabeans properties .
author
Srikanth P

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


            

      

    
Methods Summary
public java.lang.String[]getAdminObjectInterfaceNames(ConnectorDescriptor desc)
gets the adminObjectInterfaceNames pertaining to a rar.

param
desc ConnectorDescriptor pertaining to rar.
return
Array of AdminObjectInterface names as Strings
throws
ConnectorRuntimeException if parsing fails


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

        Set adminObjectSet = desc.getAdminObjects();
        if(adminObjectSet == null || adminObjectSet.size() == 0) {
            return null;
        }
        String[] adminObjectInterfaceNames = new String[adminObjectSet.size()];
        Iterator it = adminObjectSet.iterator();
        AdminObject aor = null; 
        for(int i=0;it.hasNext();++i) {
            aor = (AdminObject) it.next();
            adminObjectInterfaceNames[i] = aor.getAdminObjectInterface();
        }
        return adminObjectInterfaceNames;
    
public java.util.PropertiesgetJavaBeanProps(ConnectorDescriptor desc, java.lang.String adminObjectInterface, java.lang.String rarName)
Parses the ra.xml for the admin object javabean properties. The admin object to be parsed is identified by the moduleDir where ra.xml is present and the adminObject interface. Admin object interface 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 no adminObjectInterce is found in ra.xml. If rar is deployed and admin Object interface is present but no properties are present for the corresponding adminobjectInterface, null is returned.

param
desc ConnectorDescriptor pertaining to rar.
param
adminObjectInterface AdminObject interface which is unique across all the admin Object elements in a given rar.
return
Javabean properties with the propety names and values of propeties. 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 no admin object intercface is found in ra.xml


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

        Set adminObjectSet = desc.getAdminObjects();
        if(adminObjectSet== null || adminObjectSet.size() == 0) {
            return null;
        }
        AdminObject adminObject = null;
        Iterator iter = adminObjectSet.iterator();
        Properties mergedVals = null;
        boolean adminInterfaceFound = false;
        while(iter.hasNext()) {
            adminObject = (AdminObject)iter.next();
            if(adminObjectInterface.equals(
                           adminObject.getAdminObjectInterface())) {
                adminInterfaceFound = true;
                break;
            }
        }
      
        if(adminInterfaceFound == false) {
            StringManager localStrings =
                    StringManager.getManager(AdminObjectConfigParserImpl.class);
            String msg = localStrings.getString(
                    "no_adminobject_interface_found_in_raxml", adminObjectInterface);
            _logger.log(Level.FINE, msg);
            throw new ConnectorRuntimeException(msg);
        }

        /* 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
        */
        Set ddVals = adminObject.getConfigProperties();
        String className = adminObject.getAdminObjectClass();
        if(className != null && className.length() != 0) {
            Properties introspectedVals = 
                    configParserUtil.introspectJavaBean(className, ddVals);
            mergedVals = configParserUtil.mergeProps(ddVals,introspectedVals);
        }
        return mergedVals;