in src/main/java/org/apache/easyant/tasks/LoadModule.java [263:394]
protected void loadBuildModule(File buildModule) {
IvyContext.pushNewContext().setIvy(getEasyAntIvyInstance());
EasyAntModuleDescriptorParser parser = getEasyAntModuleDescriptorParser(buildModule);
log("Loading EasyAnt module descriptor :" + parser.getClass().getName(), Project.MSG_DEBUG);
try {
parser.parseDescriptor(getEasyAntIvyInstance().getSettings(), buildModule.toURI().toURL(), new URLResource(
buildModule.toURI().toURL()), true);
EasyAntModuleDescriptor md = parser.getEasyAntModuleDescriptor();
ModuleRevisionId currentModule = md.getIvyModuleDescriptor().getModuleRevisionId();
String buildConfigurations = null;
for (String conf : md.getBuildConfigurations()) {
if (buildConfigurations == null) {
buildConfigurations = conf;
} else {
buildConfigurations = buildConfigurations + "," + conf;
}
}
getProject().setProperty(EasyAntMagicNames.AVAILABLE_BUILD_CONFIGURATIONS, buildConfigurations);
updateMainConfs();
for (PropertyDescriptor property : md.getProperties().values()) {
if (canInherit(property, currentModule)) {
PropertyTask propTask = new PropertyTask();
propTask.setName(property.getName());
propTask.setValue(property.getValue());
propTask.setBuildConfigurations(property.getBuildConfigurations());
propTask.setTaskType("antlib:org.apache.easyant:property");
getOwningTarget().addTask(propTask);
initTask(propTask).perform();
}
}
if (md.getConfigureProjectDescriptor() != null) {
ConfigureProjectDescriptor descriptor = md.getConfigureProjectDescriptor();
ConfigureProject configureProject = new ConfigureProject();
configureProject.setDefaultTarget(descriptor.getDefaultTarget());
configureProject.setBasedir(descriptor.getBasedir());
configureProject.setTaskType("antlib:org.apache.easyant:configure-project");
getOwningTarget().addTask(configureProject);
initTask(configureProject).perform();
}
ResolvePlugins resolvePlugins = new ResolvePlugins();
if (md.getBuildType() != null) {
if (canInherit(md.getBuildType(), currentModule)) {
// Import importTask = new Import();
// importTask.setMrid(md.getBuildType().getMrid());
// importTask.setMode(md.getBuildType().getMode());
// importTask.setAs(md.getBuildType().getAs());
// importTask.setMandatory(md.getBuildType().isMandatory());
// importTask.setBuildConfigurations(md.getBuildType().getBuildConfigurations());
// importTask.setDependencies(md.getBuildType().getDependencies());
// importTask.setConflicts(md.getBuildType().getConflicts());
// importTask.setExcludes(md.getBuildType().getExcludes());
//
// importTask.setTaskType("antlib:org.apache.easyant:import");
// getOwningTarget().addTask(importTask);
// initTask(importTask).perform();
IvyDependency buildtype = resolvePlugins.createDependency();
buildtype.setOrg(md.getBuildType().getModuleRevisionId().getOrganisation());
buildtype.setName(md.getBuildType().getModuleRevisionId().getName());
buildtype.setRev(md.getBuildType().getModuleRevisionId().getRevision());
}
}
for (PluginDescriptor plugin : md.getPlugins()) {
if (canInherit(plugin, currentModule)) {
// Import importTask = new Import();
// importTask.setMrid(plugin.getMrid());
// importTask.setMode(plugin.getMode());
// importTask.setAs(plugin.getAs());
// importTask.setMandatory(plugin.isMandatory());
// importTask.setBuildConfigurations(plugin.getBuildConfigurations());
// importTask.setDependencies(plugin.getDependencies());
// importTask.setConflicts(plugin.getConflicts());
// importTask.setExcludes(plugin.getExcludes());
// importTask.setTaskType("antlib:org.apache.easyant:import");
// getOwningTarget().addTask(importTask);
// initTask(importTask).perform();
IvyDependency pluginDependency = resolvePlugins.createDependency();
pluginDependency.setOrg(plugin.getModuleRevisionId().getOrganisation());
pluginDependency.setName(plugin.getModuleRevisionId().getName());
pluginDependency.setRev(plugin.getModuleRevisionId().getRevision());
}
}
initTask(resolvePlugins).execute();
if (md.getBuildType() != null) {
if (canInherit(md.getBuildType(), currentModule)) {
ImportDeferred importDeferredTask = new ImportDeferred();
importDeferredTask.setOrganisation(md.getBuildType().getModuleRevisionId().getOrganisation());
importDeferredTask.setModule(md.getBuildType().getModuleRevisionId().getName());
importDeferredTask.setMode(md.getBuildType().getMode());
importDeferredTask.setAs(md.getBuildType().getAs());
importDeferredTask.setMandatory(md.getBuildType().isMandatory());
importDeferredTask.setBuildConfigurations(md.getBuildType().getBuildConfigurations());
importDeferredTask.setTaskType("antlib:org.apache.easyant:import-deferred");
getOwningTarget().addTask(importDeferredTask);
initTask(importDeferredTask).perform();
}
}
for (PluginDescriptor plugin : md.getPlugins()) {
if (canInherit(plugin, currentModule)) {
ImportDeferred importDeferredTask = new ImportDeferred();
importDeferredTask.setOrganisation(plugin.getModuleRevisionId().getOrganisation());
importDeferredTask.setModule(plugin.getModuleRevisionId().getName());
importDeferredTask.setMode(plugin.getMode());
importDeferredTask.setAs(plugin.getAs());
importDeferredTask.setMandatory(plugin.isMandatory());
importDeferredTask.setBuildConfigurations(plugin.getBuildConfigurations());
importDeferredTask.setTaskType("antlib:org.apache.easyant:import-deferred");
getOwningTarget().addTask(importDeferredTask);
initTask(importDeferredTask).perform();
}
}
// Apply ExtensionPointMapping
for (ExtensionPointMappingDescriptor epMapping : md.getExtensionPointsMappings()) {
BindTarget bindTarget = new BindTarget();
bindTarget.setTarget(epMapping.getTarget());
bindTarget.setExtensionOf(epMapping.getExtensionPoint());
bindTarget.setBuildConfigurations(epMapping.getBuildConfigurations());
initTask(bindTarget).perform();
}
} catch (Exception e) {
throw new BuildException("problem while parsing Ivy module file: " + e.getMessage(), e);
}
IvyContext.popContext();
}