aboutsummaryrefslogtreecommitdiffstats
path: root/ajde.core
diff options
context:
space:
mode:
authoraclement <aclement>2009-02-12 16:39:27 +0000
committeraclement <aclement>2009-02-12 16:39:27 +0000
commit5456d4c5c0d17dc007751df618156c9a414273f0 (patch)
tree6f6c607cca26ce10d565097b6004bcfcd16a9b55 /ajde.core
parentf191842def35c70291fdb11dc1165878998f3c23 (diff)
downloadaspectj-5456d4c5c0d17dc007751df618156c9a414273f0.tar.gz
aspectj-5456d4c5c0d17dc007751df618156c9a414273f0.zip
124460: aop.xml used for compilation: AJDT interface support
Diffstat (limited to 'ajde.core')
-rw-r--r--ajde.core/src/org/aspectj/ajde/core/ICompilerConfiguration.java5
-rw-r--r--ajde.core/src/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java18
2 files changed, 21 insertions, 2 deletions
diff --git a/ajde.core/src/org/aspectj/ajde/core/ICompilerConfiguration.java b/ajde.core/src/org/aspectj/ajde/core/ICompilerConfiguration.java
index 9438d5cff..9696d3c0c 100644
--- a/ajde.core/src/org/aspectj/ajde/core/ICompilerConfiguration.java
+++ b/ajde.core/src/org/aspectj/ajde/core/ICompilerConfiguration.java
@@ -46,6 +46,11 @@ public interface ICompilerConfiguration extends CompilerConfigurationChangeFlags
public List /* String */getProjectSourceFiles();
/**
+ * @return a list of those files that should be used to configure a build
+ */
+ public List /* String */getProjectXmlConfigFiles();
+
+ /**
* Return a subset of those files we'd get on getProjectSourceFiles() - the subset that have changed since the last build. If
* someone else has already worked out what needs rebuilding, we don't need to do it again by checking all of the
* projectSourceFiles(). Returning an empty list means nothing has changed, returning null means you have no idea what changed
diff --git a/ajde.core/src/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java b/ajde.core/src/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java
index 3da5e1e77..774dd7b33 100644
--- a/ajde.core/src/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java
+++ b/ajde.core/src/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java
@@ -77,7 +77,8 @@ public class AjdeCoreBuildManager {
// If an incremental build is requested, check that we can
if (!fullBuild) {
AjState existingState = IncrementalStateManager.retrieveStateFor(compiler.getId());
- if (existingState == null || existingState.getBuildConfig()==null || ajBuildManager.getState().getBuildConfig() == null) {
+ if (existingState == null || existingState.getBuildConfig() == null
+ || ajBuildManager.getState().getBuildConfig() == null) {
// No existing state so we must do a full build
fullBuild = true;
} else {
@@ -220,7 +221,20 @@ public class AjdeCoreBuildManager {
if (l == null) {
return null;
}
- args = (String[]) l.toArray(new String[l.size()]);
+ List xmlfiles = compilerConfig.getProjectXmlConfigFiles();
+ if (xmlfiles != null && !xmlfiles.isEmpty()) {
+ args = new String[l.size() + xmlfiles.size()];
+ // TODO speedup
+ int p = 0;
+ for (int i = 0; i < l.size(); i++) {
+ args[p++] = (String) l.get(i);
+ }
+ for (int i = 0; i < xmlfiles.size(); i++) {
+ args[p++] = (String) xmlfiles.get(i);
+ }
+ } else {
+ args = (String[]) l.toArray(new String[l.size()]);
+ }
}
BuildArgParser parser = new BuildArgParser(handler);