src/ConfigParser/ConfigParser.js
function(id){
        if(!id){
            return undefined;
        }
        var pluginElement = this.doc.find('./plugin/[@name="' + id + '"]');
        if (null === pluginElement) {
            var legacyFeature =  this.doc.find('./feature/param[@name="id"][@value="' + id + '"]/..');
            if(legacyFeature){
                 events.emit('log', 'Found deprecated feature entry for ' + id +' in config.xml.');
                return featureToPlugin(legacyFeature);
            }
            return undefined;
        }
        var plugin = {};

        plugin.name = pluginElement.attrib.name;
        plugin.spec = pluginElement.attrib.spec || pluginElement.attrib.src || pluginElement.attrib.version;
        plugin.variables = {};
        var variableElements = pluginElement.findall('variable');
        variableElements.forEach(function(varElement){
            var name = varElement.attrib.name;
            var value = varElement.attrib.value;
            if(name){
                plugin.variables[name] = value;
            }
        });
        return plugin;
    }
function(id){
        if(!id){
            return undefined;
        }
        var pluginElement = this.doc.find('./plugin/[@name="' + id + '"]');
        if (null === pluginElement) {
            var legacyFeature =  this.doc.find('./feature/param[@name="id"][@value="' + id + '"]/..');
            if(legacyFeature){
                 events.emit('log', 'Found deprecated feature entry for ' + id +' in config.xml.');
                return featureToPlugin(legacyFeature);
            }
            return undefined;
        }
        var plugin = {};

        plugin.name = pluginElement.attrib.name;
        plugin.spec = pluginElement.attrib.spec || pluginElement.attrib.src || pluginElement.attrib.version;
        plugin.variables = {};
        var variableElements = pluginElement.findall('variable');
        variableElements.forEach(function(varElement){
            var name = varElement.attrib.name;
            var value = varElement.attrib.value;
            if(name){
                plugin.variables[name] = value;
            }
        });
        return plugin;
    }
function ( id ) { if ( ! id ) { return undefined ; } var pluginElement = this . doc . find ( './plugin/[@name="' + id + '"]' ) ; if ( null === pluginElement ) { var legacyFeature = this . doc . find ( './feature/param[@name="id"][@value="' + id + '"]/..' ) ; if ( legacyFeature ) { events . emit ( 'log' , 'Found deprecated feature entry for ' + id + ' in config.xml.' ) ; return featureToPlugin ( legacyFeature ) ; } return undefined ; } var plugin = { } ; plugin . name = pluginElement . attrib . name ; plugin . spec = pluginElement . attrib . spec || pluginElement . attrib . src || pluginElement . attrib . version ; plugin . variables = { } ; var variableElements = pluginElement . findall ( 'variable' ) ; variableElements . forEach ( function ( varElement ) { var name = varElement . attrib . name ; var value = varElement . attrib . value ; if ( name ) { plugin . variables [ name ] = value ; } } ) ; return plugin ; }
Retrives the plugin with the given id or null if not found.

This function also returns any plugin's that
were defined using the legacy <feature> tags.
@name getPlugin
@function
@param {String} id
@returns {object} plugin including any variables
Retrives the plugin with the given id or null if not found .