You are viewing a plain text version of this content. The canonical link for it is here.
Posted to easyant-commits@incubator.apache.org by jl...@apache.org on 2012/08/20 17:34:14 UTC
svn commit: r1375127 -
/incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/services/impl/DefaultPluginServiceImpl.java
Author: jlboudart
Date: Mon Aug 20 17:34:14 2012
New Revision: 1375127
URL: http://svn.apache.org/viewvc?rev=1375127&view=rev
Log:
Refactor pluginService.getPluginInfo, we can properly handle import/parameterTask etc...
Code has been merged with AbstractImport
Modified:
incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/services/impl/DefaultPluginServiceImpl.java
Modified: incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/services/impl/DefaultPluginServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/services/impl/DefaultPluginServiceImpl.java?rev=1375127&r1=1375126&r2=1375127&view=diff
==============================================================================
--- incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/services/impl/DefaultPluginServiceImpl.java (original)
+++ incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/services/impl/DefaultPluginServiceImpl.java Mon Aug 20 17:34:14 2012
@@ -21,7 +21,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
@@ -42,6 +41,7 @@ import org.apache.easyant.core.report.Pa
import org.apache.easyant.core.report.ParameterType;
import org.apache.easyant.core.report.TargetReport;
import org.apache.easyant.core.services.PluginService;
+import org.apache.easyant.tasks.AbstractImport;
import org.apache.easyant.tasks.Import;
import org.apache.easyant.tasks.ParameterTask;
import org.apache.ivy.Ivy;
@@ -58,6 +58,7 @@ import org.apache.ivy.plugins.parser.Mod
import org.apache.ivy.plugins.repository.url.URLResource;
import org.apache.ivy.plugins.resolver.DependencyResolver;
import org.apache.ivy.util.Message;
+import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.ComponentHelper;
import org.apache.tools.ant.ExtensionPoint;
import org.apache.tools.ant.Project;
@@ -66,6 +67,7 @@ import org.apache.tools.ant.PropertyHelp
import org.apache.tools.ant.Target;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.taskdefs.Property;
+import org.apache.tools.ant.types.Path;
public class DefaultPluginServiceImpl implements PluginService {
@@ -101,7 +103,7 @@ public class DefaultPluginServiceImpl im
ModuleDescriptorParserRegistry.getInstance().addParser(parser);
}
- public EasyAntReport getPluginInfo(ModuleRevisionId moduleRevisionId, String conf) throws Exception {
+ public EasyAntReport getPluginInfo(final ModuleRevisionId moduleRevisionId, String conf) throws Exception {
IvyContext.pushNewContext().setIvy(ivyInstance);
EasyAntReport eaReport = null;
@@ -110,37 +112,67 @@ public class DefaultPluginServiceImpl im
ResolveOptions resolveOptions = new ResolveOptions();
resolveOptions.setLog(ResolveOptions.LOG_QUIET);
resolveOptions.setConfs(conf.split(","));
- ResolveReport report = IvyContext.getContext().getIvy().getResolveEngine()
+ final ResolveReport report = IvyContext.getContext().getIvy().getResolveEngine()
.resolve(moduleRevisionId, resolveOptions, true);
eaReport = new EasyAntReport();
eaReport.setResolveReport(report);
eaReport.setModuleDescriptor(report.getModuleDescriptor());
- Map<String, String> properties = new HashMap<String, String>();
- File antFile = null;
- for (int j = 0; j < report.getConfigurationReport(conf).getAllArtifactsReports().length; j++) {
- ArtifactDownloadReport artifact = report.getConfigurationReport(conf).getAllArtifactsReports()[j];
-
- if ("ant".equals(artifact.getType()) && "ant".equals(artifact.getExt())) {
- antFile = artifact.getLocalFile();
- } else {
- StringBuilder sb = new StringBuilder();
- sb.append(moduleRevisionId.getOrganisation());
- sb.append("#");
- sb.append(moduleRevisionId.getName());
- sb.append(".");
- if (!moduleRevisionId.getName().equals(artifact.getName())) {
- sb.append(artifact.getName());
- sb.append(".");
+ Project project = new Project();
+ project.setNewProperty(EasyAntMagicNames.AUDIT_MODE, "true");
+ project.setNewProperty(EasyAntMagicNames.SKIP_CORE_REVISION_CHECKER, "true");
+ EasyAntEngine eagAntEngine = new EasyAntEngine();
+ eagAntEngine.configureEasyAntIvyInstance(project);
+ project.init();
+
+ AbstractImport abstractImport = new AbstractImport() {
+ @Override
+ public void execute() throws BuildException {
+ Path path = createModulePath(moduleRevisionId);
+ File antFile = null;
+ for (int j = 0; j < report.getConfigurationReport(getMainConf()).getAllArtifactsReports().length; j++) {
+ ArtifactDownloadReport artifact = report.getConfigurationReport(getMainConf())
+ .getAllArtifactsReports()[j];
+
+ if ("ant".equals(artifact.getType())) {
+ antFile = artifact.getLocalFile();
+ } else if ("jar".equals(artifact.getType())) {
+ path.createPathElement().setLocation(artifact.getLocalFile());
+ } else {
+ handleOtherResourceFile(moduleRevisionId, artifact.getName(), artifact.getExt(),
+ artifact.getLocalFile());
+ }
+ }
+ if (antFile != null && antFile.exists()) {
+ ProjectHelper.configureProject(getProject(), antFile);
}
- sb.append(artifact.getExt());
- sb.append(".file");
- properties.put(sb.toString(), artifact.getLocalFile().getAbsolutePath());
}
- }
+ };
- if (antFile != null) {
- scanAntFile(conf, eaReport, properties, antFile);
+ abstractImport.setProject(project);
+ // location ?
+ abstractImport.execute();
+
+ for (Iterator iterator = project.getTargets().values().iterator(); iterator.hasNext();) {
+ Target target = (Target) iterator.next();
+ handleTarget(eaReport, target);
+ for (int i = 0; i < target.getTasks().length; i++) {
+ Task task = target.getTasks()[i];
+ Class taskClass = ComponentHelper.getComponentHelper(project).getComponentClass(task.getTaskType());
+ if (taskClass == null) {
+ continue;
+ }
+ if (ParameterTask.class.getName().equals(taskClass.getName())) {
+ handleParameterTask(eaReport, task);
+ }
+ if (Property.class.getName().equals(taskClass.getName())) {
+ handleProperty(eaReport, task);
+ }
+ if (Import.class.getName().equals(taskClass.getName())) {
+ handleImport(conf, eaReport, task);
+ }
+
+ }
}
} catch (Exception e) {
throw new Exception("An error occured while fetching plugin informations : " + e.getMessage(), e);
@@ -154,8 +186,7 @@ public class DefaultPluginServiceImpl im
private void scanAntFile(String conf, EasyAntReport eaReport, Map<String, String> properties, File antFile)
throws IOException, Exception {
Project project = new Project();
- // FIXME: temporary to support phases report
- project.setNewProperty("audit.mode", "true");
+ project.setNewProperty(EasyAntMagicNames.AUDIT_MODE, "true");
project.setNewProperty(EasyAntMagicNames.SKIP_CORE_REVISION_CHECKER, "true");
EasyAntEngine eagAntEngine = new EasyAntEngine();
eagAntEngine.configureEasyAntIvyInstance(project);
@@ -206,12 +237,11 @@ public class DefaultPluginServiceImpl im
importedModuleReport.setType(propertyHelper.replaceProperties(attributes.get("type")));
importedModuleReport.setAs(propertyHelper.replaceProperties(attributes.get("as")));
if (attributes.get("mandatory") != null) {
- importedModuleReport.setMandatory(Boolean.parseBoolean(propertyHelper.replaceProperties(attributes.get("mandatory"))));
+ importedModuleReport.setMandatory(Boolean.parseBoolean(propertyHelper.replaceProperties(attributes
+ .get("mandatory"))));
}
- // importedModuleReport.setEasyantReport(getPluginInfo(
- // ModuleRevisionId.parse(PropertyHelper.getPropertyHelper(
- // task.getProject()).replaceProperties(
- // importedModuleReport.getModuleMrid())), conf));
+ importedModuleReport
+ .setEasyantReport(getPluginInfo(ModuleRevisionId.parse(importedModuleReport.getModuleMrid())));
eaReport.addImportedModuleReport(importedModuleReport);
Message.debug("Ant file import another module called : " + importedModuleReport.getModuleMrid() + " with mode "