com.canoo.webtest.ant
Class WebtestPropertyHelper

java.lang.Object
  extended by org.apache.tools.ant.PropertyHelper
      extended by com.canoo.webtest.ant.WebtestPropertyHelper

public class WebtestPropertyHelper
extends PropertyHelper

Helper class for working with Ant and WebTest dynamic properties.

This property helper is registered at the start of a WebTest and used by ant to evaluate properties when configuring tasks.
It is able to evaluate traditional Ant properties like ${my.property} as well as WebTest dynamic properties like #{my.dynamic.property}.
It will notify build listeners implementing IPropertyExpansionListener of the property expansion.

Author:
Marc Guillemot

Constructor Summary
WebtestPropertyHelper(Project project)
          Wrapps the property helper defined for the project.
 
Method Summary
static void configureWebtestPropertyHelper(Project project)
          Configures the special WebTest property helper for the current project
 void copyInheritedProperties(Project other)
           
 void copyUserProperties(Project other)
           
protected static void definePropertyHelper(Project project, PropertyHelper propertyHelper)
          Define a new property helper for the project
static String expandDynamicProperties(Map properties, String text)
          Deprecated. Use @link Project#replaceProperties(msg)} instead
 PropertyHelper getNext()
           
 Hashtable getProperties()
           
 Object getProperty(String ns, String name)
           
 Object getPropertyHook(String ns, String name, boolean user)
           
 Hashtable getUserProperties()
           
 Object getUserProperty(String ns, String name)
           
 void parsePropertyString(String value, Vector fragments, Vector propertyRefs)
           
 String replaceProperties(String ns, String value, Hashtable keys)
          Handles ${my.property} as well as WebTest dynamic properties like #{my.dynamic.property}
 void setInheritedProperty(String ns, String name, Object value)
           
 void setNewProperty(String ns, String name, Object value)
           
 void setNext(PropertyHelper next)
           
 void setProject(Project p)
           
 boolean setProperty(String ns, String name, Object value, boolean verbose)
           
 boolean setPropertyHook(String ns, String name, Object value, boolean inherited, boolean user, boolean isNew)
           
 void setUserProperty(String ns, String name, Object value)
           
 
Methods inherited from class org.apache.tools.ant.PropertyHelper
getInternalInheritedProperties, getInternalProperties, getInternalUserProperties, getPropertyHelper
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WebtestPropertyHelper

public WebtestPropertyHelper(Project project)
Wrapps the property helper defined for the project.

Parameters:
project - the project containing the original helper to decorate
Method Detail

definePropertyHelper

protected static void definePropertyHelper(Project project,
                                           PropertyHelper propertyHelper)
Define a new property helper for the project

Parameters:
propertyHelper - the new helper

configureWebtestPropertyHelper

public static void configureWebtestPropertyHelper(Project project)
Configures the special WebTest property helper for the current project

Parameters:
project - the project which property helper should be wrapped

copyInheritedProperties

public void copyInheritedProperties(Project other)
Overrides:
copyInheritedProperties in class PropertyHelper
See Also:
PropertyHelper.copyInheritedProperties(org.apache.tools.ant.Project)

copyUserProperties

public void copyUserProperties(Project other)
Overrides:
copyUserProperties in class PropertyHelper
See Also:
PropertyHelper.copyUserProperties(org.apache.tools.ant.Project)

getNext

public PropertyHelper getNext()
Overrides:
getNext in class PropertyHelper
See Also:
PropertyHelper.getNext()

getProperties

public Hashtable getProperties()
Overrides:
getProperties in class PropertyHelper
See Also:
PropertyHelper.getProperties()

getProperty

public Object getProperty(String ns,
                          String name)
Overrides:
getProperty in class PropertyHelper
See Also:
PropertyHelper.getProperty(java.lang.String, java.lang.String)

getPropertyHook

public Object getPropertyHook(String ns,
                              String name,
                              boolean user)
Overrides:
getPropertyHook in class PropertyHelper
See Also:
PropertyHelper.getPropertyHook(java.lang.String, java.lang.String, boolean)

getUserProperties

public Hashtable getUserProperties()
Overrides:
getUserProperties in class PropertyHelper
See Also:
PropertyHelper.getUserProperties()

getUserProperty

public Object getUserProperty(String ns,
                              String name)
Overrides:
getUserProperty in class PropertyHelper
See Also:
PropertyHelper.getUserProperty(java.lang.String, java.lang.String)

parsePropertyString

public void parsePropertyString(String value,
                                Vector fragments,
                                Vector propertyRefs)
                         throws BuildException
Overrides:
parsePropertyString in class PropertyHelper
Throws:
BuildException
See Also:
PropertyHelper.parsePropertyString(java.lang.String, java.util.Vector, java.util.Vector)

setInheritedProperty

public void setInheritedProperty(String ns,
                                 String name,
                                 Object value)
Overrides:
setInheritedProperty in class PropertyHelper
See Also:
PropertyHelper.setInheritedProperty(java.lang.String, java.lang.String, java.lang.Object)

setNewProperty

public void setNewProperty(String ns,
                           String name,
                           Object value)
Overrides:
setNewProperty in class PropertyHelper
See Also:
PropertyHelper.setNewProperty(java.lang.String, java.lang.String, java.lang.Object)

setNext

public void setNext(PropertyHelper next)
Overrides:
setNext in class PropertyHelper
See Also:
PropertyHelper.setNext(org.apache.tools.ant.PropertyHelper)

setProject

public void setProject(Project p)
Overrides:
setProject in class PropertyHelper
See Also:
PropertyHelper.setProject(org.apache.tools.ant.Project)

setProperty

public boolean setProperty(String ns,
                           String name,
                           Object value,
                           boolean verbose)
Overrides:
setProperty in class PropertyHelper
See Also:
PropertyHelper.setProperty(java.lang.String, java.lang.String, java.lang.Object, boolean)

setPropertyHook

public boolean setPropertyHook(String ns,
                               String name,
                               Object value,
                               boolean inherited,
                               boolean user,
                               boolean isNew)
Overrides:
setPropertyHook in class PropertyHelper
See Also:
PropertyHelper.setPropertyHook(java.lang.String, java.lang.String, java.lang.Object, boolean, boolean, boolean)

setUserProperty

public void setUserProperty(String ns,
                            String name,
                            Object value)
Overrides:
setUserProperty in class PropertyHelper
See Also:
PropertyHelper.setUserProperty(java.lang.String, java.lang.String, java.lang.Object)

replaceProperties

public String replaceProperties(String ns,
                                String value,
                                Hashtable keys)
                         throws BuildException
Handles ${my.property} as well as WebTest dynamic properties like #{my.dynamic.property}

Overrides:
replaceProperties in class PropertyHelper
Throws:
BuildException
See Also:
PropertyHelper.replaceProperties(java.lang.String, java.lang.String, java.util.Hashtable)

expandDynamicProperties

public static String expandDynamicProperties(Map properties,
                                             String text)
Deprecated. Use @link Project#replaceProperties(msg)} instead

This method handles the replacement of dynamic properties in a given String. It checks if any of the currently existing property names occur in the string. If a match is detected, it is replaced by its value. If the value is null, it is replaced by an empty string. The search looks for textual matches of the property name using an ant-like notation, i.e. in the form of "#{xxx}".

Parameters:
properties - the properties
text - The string to expand

Copyright © 2001-2007 Canoo Engineering AG, Basel. All rights reserved.