# File lib/phusion_passenger/admin_tools/server_instance.rb, line 271
        def groups
                doc = REXML::Document.new(xml)
                
                groups = []
                doc.elements.each("info/groups/group") do |group_xml|
                        group = Group.new(group_xml.elements["app_root"].text,
                                group_xml.elements["name"].text,
                                group_xml.elements["environment"].text)
                        group_xml.elements.each("processes/process") do |process_xml|
                                process = Process.new(group)
                                process_xml.elements.each do |element|
                                        if element.name == "server_sockets"
                                                element.elements.each("server_socket") do |server_socket|
                                                        name = server_socket.elements["name"].text.to_sym
                                                        address = server_socket.elements["address"].text
                                                        address_type = server_socket.elements["type"].text
                                                        process.server_sockets[name] = OpenStruct.new(
                                                                :address => address,
                                                                :address_type => address_type
                                                        )
                                                end
                                        else
                                                if process.respond_to?("#{element.name}=")
                                                        if Process::INT_PROPERTIES.include?(element.name.to_sym)
                                                                value = element.text.to_i
                                                        elsif Process::BOOL_PROPERTIES.include?(element.name.to_sym)
                                                                value = element.text == "true"
                                                        else
                                                                value = element.text
                                                        end
                                                        process.send("#{element.name}=", value)
                                                end
                                        end
                                end
                                group.processes << process
                        end
                        groups << group
                end
                return groups
        end