in src/main/java/org/apache/easyant/tasks/BindTarget.java [32:97]
public void execute() throws BuildException {
String message = "extension-point mapping for target " + getTarget();
if (!BuildConfigurationHelper.isBuildConfigurationActive(getBuildConfigurations(), getProject(),
message)) {
log("no matching build configuration for this extension-point mapping, this mapping will be ignored",
Project.MSG_DEBUG);
return;
}
Target t = getProject().getTargets().get(getTarget());
if (t == null) {
throw new BuildException("unable to find target " + getTarget());
}
// unbind current mapping
for (Target current : getProject().getTargets().values()) {
if (current instanceof ExtensionPoint) {
Enumeration<?> dependencies = current.getDependencies();
StringBuilder dependsOn = new StringBuilder();
boolean requiresUpdates = false;
while (dependencies.hasMoreElements()) {
String dep = (String) dependencies.nextElement();
if (dep.equals(getTarget())) {
log("target" + getTarget() + " is registred in extensionPoint" + current.getName(),
Project.MSG_VERBOSE);
requiresUpdates = true;
} else {
dependsOn.append(dep);
dependsOn.append(",");
}
}
if (requiresUpdates) {
log("removing target" + getTarget() + " from extension-point" + current.getName(),
Project.MSG_VERBOSE);
ExtensionPoint ep = new ExtensionPoint();
ep.setDescription(current.getDescription());
ep.setIf(current.getIf());
ep.setLocation(current.getLocation());
ep.setName(current.getName());
ep.setProject(current.getProject());
ep.setUnless(current.getUnless());
String depends = dependsOn.toString();
if (depends.endsWith(",")) {
depends = depends.substring(0, depends.length() - 1);
}
ep.setDepends(depends);
getProject().addOrReplaceTarget(ep);
}
}
}
if (getExtensionOf() != null && !getExtensionOf().equals("")) {
if (!getProject().getTargets().containsKey(getExtensionOf())) {
throw new BuildException("can't add target " + getTarget() + " to extension-point " + getExtensionOf()
+ " because the extension-point" + " is unknown.");
}
Target p = getProject().getTargets().get(getExtensionOf());
if (!(p instanceof ExtensionPoint)) {
throw new BuildException("referenced target " + getExtensionOf() + " is not a extension-point");
}
p.addDependency(getTarget());
}
}