Version Differences for Agent Java Report

Line 1:
    + This report shows the user a list of agents and their JAVA_HOME present on them. This report has to be used in conjunction with a report template such as the [[HTML Template]].  
       
    + ----  
       
    + ''Meta-Data Script:''  
       
    + <pre>import com.urbancode.anthill3.domain.reporting.*;  
       
    + ReportMetaData rmd = new ReportMetaData();  
       
    + rmd.addColumn("Agent");  
    + rmd.addColumn("Status");  
    + rmd.addColumn("env/JAVA_HOME");  
    + rmd.addColumn("env/USERDOMAIN");  
    + rmd.addColumn("env/USERNAME");  
    + rmd.addColumn("env/COMPUTERNAME");  
    + rmd.addColumn("sys/java.version");  
    + rmd.addColumn("sys/os.name");  
    + rmd.addColumn("sys/os.version");  
    + rmd.addColumn("sys/os.arch");  
       
    + return rmd;  
       
    + </pre>  
       
    + ----  
       
    + ''Report Script:''  
       
    + <pre>import com.urbancode.anthill3.domain.agent.*;  
    + import com.urbancode.anthill3.domain.reporting.*;  
    + import com.urbancode.anthill3.services.agent.*;  
       
    + String[] vars = new String[] { "env/JAVA_HOME", "env/USERDOMAIN", "env/USERNAME", "env/COMPUTERNAME", "sys/java.version", "sys/os.name", "sys/os.version", "sys/os.arch"};  
       
    + void setColsBlank(row) {  
    + for (var : vars) {  
    + row.setColumnValue(var, "");  
    + }  
    + }  
       
    + void setColsFromAgent(row, agent) {  
    + for (var : vars) {  
    + String value = AgentVarHelper.getAgentVar(agent, var);  
    + value = value == null ? "<i>undefined</i>" : value;  
    + row.setColumnValue(var, value);  
    + }  
    + }  
       
    + ReportOutput output = new ReportOutput(metaData);  
       
    + agents = AgentFactory.getInstance().restoreAll();  
       
    + for (Agent agent : agents) {  
    + ReportRow row = new ReportRow(output, String.valueOf(agent.getId()));  
    + row.setColumnValue("Agent", agent.getName());  
    + if (agent.isConfigured()) {  
    + status = AgentManager.getInstance().getAgentStatus(agent);  
    + if (status == null || !status.isOnline()) {  
    + row.setColumnValue("Status", "OFFLINE");  
    + setColsBlank(row);  
    + }  
    + else if (status.isAcceptableVersion()) {  
    + row.setColumnValue("Status", "ONLINE");  
    + setColsFromAgent(row, agent);  
    + }  
    + else {  
    + row.setColumnValue("Status", "WRONG VERSION");  
    + setColsFromAgent(row, agent);  
    + }  
    + }  
    + else {  
    + row.setColumnValue("Status", "NOT CONFIGURED");  
    + setColsBlank(row);  
    + }  
    + output.addRow(row);  
    + }  
    + return output;  
       
       
    + </pre>  
       
    + ----  
       
    + '''Related Content'''  
       
    + [[AnthillPro Template Reports]]<br/>  
    + [[Report Templates]]