Version Differences for Agent Filter

(AHPSCRIPTS-30)
(AHPSCRIPTS-102)
Line 338:
  bl.setProperty("Agents_not_deployed_too", null);     bl.setProperty("Agents_not_deployed_too", null);  
  }</pre>    }</pre> 
       
    + = Based on Property That Contains Value of Agent Property =  
    + ==== AHPSCRIPTS-10 ====  
    + <pre>import com.urbancode.anthill3.domain.agent.Agent;  
    + import com.urbancode.anthill3.runtime.scripting.helpers.*;  
       
    + public class PropertyEqualsAgentVar extends VariableEqualsCriteria {  
       
    + String propertyname;  
       
    + public PropertyEqualsAgentVar(String propertyname, String varName) {  
    + super(varName);  
    + this.propertyname = propertyname;  
    + }  
       
    + public Agent[] filter(Agent[] agents){  
    + String platform = PropertyLookup.get(propertyname);  
    + this.setValue(platform);  
    + return super.filter(agents);  
    + }  
    + }  
       
    + // 'my.property.name' is the name of a project or workflow property that contains the value  
    + // of the agent property named 'agent.property.name'  
       
    + return Where.is(new PropertyEqualsAgentVar("my.property.name", "agent.property.name"));</pre>  
       
    + ''If you want the filter to work on non-originating workflows where the property determinant was a workflow property on the originating workflow, then use:''  
    + <pre>import com.urbancode.anthill3.domain.agent.Agent;  
    + import com.urbancode.anthill3.runtime.scripting.helpers.*;  
    + import org.apache.log4j.*;  
       
    + public class PropertyEqualsAgentVar extends VariableEqualsCriteria {  
       
    + Logger log = Logger.getLogger(PropertyEqualsAgentVar.class);  
    + String propertyname;  
       
    + public PropertyEqualsAgentVar(String propertyname, String varName) {  
    + super(varName);  
    + this.propertyname = propertyname;  
    + }  
       
    + public Agent[] filter(Agent[] agents){  
    + String platform = PropertyLookup.get(propertyname);  
    + if (platform == null || platform.length() == 0 || "null".equals(platform)) {  
    + platform = BuildLifeLookup.getCurrent().getOriginatingWorkflow().getRequest().getProperty(propertyname);  
    + }  
    + log.warn("platform: " + platform);  
    + this.setValue(platform);  
    + return super.filter(agents);  
    + }  
    + }  
       
    + // 'my.property.name' is the name of a project or workflow property that contains the value  
    + // of the agent property named 'agent.property.name'  
       
    + return Where.is(new PropertyEqualsAgentVar("my.property.name", "agent.property.name"));</pre>  
       
    + ''Basic case''  
    + <pre>String propValue = PropertyLookup.get("property");  
    + return Where.is(Variable.equals("property", propValue));</pre>