Fields Summary |
---|
public static final String | ANT_CORE_URIThe URI for ant name space |
public static final String | ANT_CURRENT_URIThe URI for antlib current definitions |
public static final String | ANTLIB_URIThe URI for defined types/tasks - the format is antlib: |
public static final String | ANT_TYPEPolymorphic attribute |
public static final String | HELPER_PROPERTYName of JVM system property which provides the name of the
ProjectHelper class to use. |
public static final String | SERVICE_IDThe service identifier in jars which provide Project Helper
implementations. |
public static final String | PROJECTHELPER_REFERENCEname of project helper reference that we add to a project |
private Vector | importStack |
Methods Summary |
---|
public static BuildException | addLocationToBuildException(BuildException ex, Location newLocation)Add location to build exception.
if (ex.getLocation() == null || ex.getMessage() == null) {
return ex;
}
String errorMessage
= "The following error occurred while executing this line:"
+ System.getProperty("line.separator")
+ ex.getLocation().toString()
+ ex.getMessage();
if (newLocation == null) {
return new BuildException(errorMessage, ex);
} else {
return new BuildException(
errorMessage, ex, newLocation);
}
|
public static void | addText(Project project, java.lang.Object target, java.lang.String text)Adds the content of #PCDATA sections to an element.
if (text == null) {
return;
}
if (target instanceof TypeAdapter) {
target = ((TypeAdapter) target).getProxy();
}
IntrospectionHelper.getHelper(project, target.getClass()).addText(project,
target, text);
|
public static void | addText(Project project, java.lang.Object target, char[] buf, int start, int count)Adds the content of #PCDATA sections to an element.
addText(project, target, new String(buf, start, count));
|
public static void | configure(java.lang.Object target, org.xml.sax.AttributeList attrs, Project project)Configures an object using an introspection handler.
if (target instanceof TypeAdapter) {
target = ((TypeAdapter) target).getProxy();
}
IntrospectionHelper ih =
IntrospectionHelper.getHelper(project, target.getClass());
for (int i = 0; i < attrs.getLength(); i++) {
// reflect these into the target
String value = replaceProperties(project, attrs.getValue(i),
project.getProperties());
try {
ih.setAttribute(project, target,
attrs.getName(i).toLowerCase(Locale.US), value);
} catch (BuildException be) {
// id attribute must be set externally
if (!attrs.getName(i).equals("id")) {
throw be;
}
}
}
|
public static void | configureProject(Project project, java.io.File buildFile)Configures the project with the contents of the specified XML file.
ProjectHelper helper = ProjectHelper.getProjectHelper();
project.addReference(PROJECTHELPER_REFERENCE, helper);
helper.parse(project, buildFile);
|
public static java.lang.String | extractNameFromComponentName(java.lang.String componentName)extract the element name from a component name
int index = componentName.lastIndexOf(':");
if (index == -1) {
return componentName;
}
return componentName.substring(index + 1);
|
public static java.lang.String | extractUriFromComponentName(java.lang.String componentName)extract a uri from a component name
if (componentName == null) {
return "";
}
int index = componentName.lastIndexOf(':");
if (index == -1) {
return "";
}
return componentName.substring(0, index);
|
public static java.lang.String | genComponentName(java.lang.String uri, java.lang.String name)Map a namespaced {uri,name} to an internal string format.
For BC purposes the names from the ant core uri will be
mapped to "name", other names will be mapped to
uri + ":" + name.
if (uri == null || uri.equals("") || uri.equals(ANT_CORE_URI)) {
return name;
}
return uri + ":" + name;
|
public static java.lang.ClassLoader | getContextClassLoader()JDK1.1 compatible access to the context class loader.
Cut&paste from JAXP.
if (!LoaderUtils.isContextLoaderAvailable()) {
return null;
}
return LoaderUtils.getContextClassLoader();
|
public java.util.Vector | getImportStack()EXPERIMENTAL WILL_CHANGE
Import stack.
Used to keep track of imported files. Error reporting should
display the import path.
// Temporary - until we figure a better API
// public Hashtable getProcessedFiles() {
// return processedFiles;
// }
return importStack;
|
public static org.apache.tools.ant.ProjectHelper | getProjectHelper()Discovers a project helper instance. Uses the same patterns
as JAXP, commons-logging, etc: a system property, a JDK1.3
service discovery, default.
// Identify the class loader we will be using. Ant may be
// in a webapp or embedded in a different app
ProjectHelper helper = null;
// First, try the system property
String helperClass = System.getProperty(HELPER_PROPERTY);
try {
if (helperClass != null) {
helper = newHelper(helperClass);
}
} catch (SecurityException e) {
System.out.println("Unable to load ProjectHelper class \""
+ helperClass + " specified in system property "
+ HELPER_PROPERTY);
}
// A JDK1.3 'service' ( like in JAXP ). That will plug a helper
// automatically if in CLASSPATH, with the right META-INF/services.
if (helper == null) {
try {
ClassLoader classLoader = LoaderUtils.getContextClassLoader();
InputStream is = null;
if (classLoader != null) {
is = classLoader.getResourceAsStream(SERVICE_ID);
}
if (is == null) {
is = ClassLoader.getSystemResourceAsStream(SERVICE_ID);
}
if (is != null) {
// This code is needed by EBCDIC and other strange systems.
// It's a fix for bugs reported in xerces
InputStreamReader isr;
try {
isr = new InputStreamReader(is, "UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
isr = new InputStreamReader(is);
}
BufferedReader rd = new BufferedReader(isr);
String helperClassName = rd.readLine();
rd.close();
if (helperClassName != null
&& !"".equals(helperClassName)) {
helper = newHelper(helperClassName);
}
}
} catch (Exception ex) {
System.out.println("Unable to load ProjectHelper "
+ "from service \"" + SERVICE_ID);
}
}
if (helper != null) {
return helper;
} else {
return new ProjectHelper2();
}
|
private static org.apache.tools.ant.ProjectHelper | newHelper(java.lang.String helperClass)Creates a new helper instance from the name of the class.
It'll first try the thread class loader, then Class.forName()
will load from the same loader that loaded this class.
ClassLoader classLoader = LoaderUtils.getContextClassLoader();
try {
Class clazz = null;
if (classLoader != null) {
try {
clazz = classLoader.loadClass(helperClass);
} catch (ClassNotFoundException ex) {
// try next method
}
}
if (clazz == null) {
clazz = Class.forName(helperClass);
}
return ((ProjectHelper) clazz.newInstance());
} catch (Exception e) {
throw new BuildException(e);
}
|
public void | parse(Project project, java.lang.Object source)Parses the project file, configuring the project as it goes.
throw new BuildException("ProjectHelper.parse() must be implemented "
+ "in a helper plugin " + this.getClass().getName());
|
public static void | parsePropertyString(java.lang.String value, java.util.Vector fragments, java.util.Vector propertyRefs)Parses a string containing ${xxx} style property
references into two lists. The first list is a collection
of text fragments, while the other is a set of string property names.
null entries in the first list indicate a property
reference from the second list.
PropertyHelper.parsePropertyStringDefault(value, fragments,
propertyRefs);
|
public static java.lang.String | replaceProperties(Project project, java.lang.String value)Replaces ${xxx} style constructions in the given value with
the string value of the corresponding properties.
// needed since project properties are not accessible
return project.replaceProperties(value);
|
public static java.lang.String | replaceProperties(Project project, java.lang.String value, java.util.Hashtable keys)Replaces ${xxx} style constructions in the given value
with the string value of the corresponding data types.
PropertyHelper ph = PropertyHelper.getPropertyHelper(project);
return ph.replaceProperties(null, value, keys);
|
public static void | storeChild(Project project, java.lang.Object parent, java.lang.Object child, java.lang.String tag)Stores a configured child element within its parent object.
IntrospectionHelper ih
= IntrospectionHelper.getHelper(project, parent.getClass());
ih.storeElement(project, parent, child, tag);
|