Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Leicht Vogt2015-10-19 15:39:50 +0000
committerAnton Tanasenko2015-12-07 18:19:53 +0000
commit45296327ea2d8a08c888f92a9152991c2f3b1f95 (patch)
treee0756ec39b81aa5e42362c25a33c4a4eb35e8a4f
parenteb85274d2f8170d35e9c14b7d2868c9cbfc25181 (diff)
downloadm2e-core-45296327ea2d8a08c888f92a9152991c2f3b1f95.tar.gz
m2e-core-45296327ea2d8a08c888f92a9152991c2f3b1f95.tar.xz
m2e-core-45296327ea2d8a08c888f92a9152991c2f3b1f95.zip
480137: adding resource directory with org.codehaus.mojo:build-helper-maven-plugin not stable
When adding a resource directory which is already in the classpath it will add the inclusionPattern **/*.java (no change here) and (this is new) touch this path on the classpath descriptor. This will remove this entry from the stale enties list. Change-Id: I7cff15e64974bf49fff8ceeb5ae90cff479d2b73 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=480137 Signed-off-by: Stephan Leicht Vogt <stephan.leichtvogt@bsi-software.com>
-rw-r--r--org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/IClasspathDescriptor.java7
-rw-r--r--org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java6
-rw-r--r--org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/ClasspathDescriptor.java4
3 files changed, 15 insertions, 2 deletions
diff --git a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/IClasspathDescriptor.java b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/IClasspathDescriptor.java
index 00d9d8ab..71f41104 100644
--- a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/IClasspathDescriptor.java
+++ b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/IClasspathDescriptor.java
@@ -58,6 +58,13 @@ public interface IClasspathDescriptor {
public IClasspathEntryDescriptor addEntry(IClasspathEntry entry);
/**
+ * Removes entry from stale entries list.
+ *
+ * @since 1.7
+ */
+ public void touchEntry(IPath entryPath);
+
+ /**
* Replaces a single ClasspathEntry instance matched by filter. Returns null if none were replaced.
*
* @since 1.6
diff --git a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java
index 2835c6df..c1205e69 100644
--- a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java
+++ b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java
@@ -424,7 +424,7 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon
if(isNonOverlappingResourceDescriptor(entryDescriptor, facade)) {
addResourceFolder(classpath, r.getFullPath(), outputPath, entryDescriptor);
} else {
- addInclusionPattern(enclosing, r.getFullPath());
+ addInclusionPattern(classpath, enclosing, r.getFullPath());
}
}
@@ -445,10 +445,12 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon
.addSourceEntry(resourceFolder, outputPath, DEFAULT_INCLUSIONS, new IPath[] {new Path("**")}, false /*optional*/);
}
- private void addInclusionPattern(IClasspathEntryDescriptor enclosing, IPath resourceFolder) {
+ private void addInclusionPattern(IClasspathDescriptor classpath, IClasspathEntryDescriptor enclosing,
+ IPath resourceFolder) {
// resources and sources folders overlap. make sure JDT only processes java sources.
log.info("Resources folder " + resourceFolder + " overlaps with sources folder " + enclosing.getPath());
enclosing.addInclusionPattern(new Path("**/*.java"));
+ classpath.touchEntry(resourceFolder);
}
private boolean isNonOverlappingResourceDescriptor(IClasspathEntryDescriptor cped, IMavenProjectFacade facade) {
diff --git a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/ClasspathDescriptor.java b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/ClasspathDescriptor.java
index 17c4ce3a..5e96f0bd 100644
--- a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/ClasspathDescriptor.java
+++ b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/ClasspathDescriptor.java
@@ -135,6 +135,10 @@ public class ClasspathDescriptor implements IClasspathDescriptor {
return descriptor;
}
+ public void touchEntry(IPath sourcePath) {
+ staleEntries.remove(sourcePath);
+ }
+
public IClasspathEntry[] getEntries() {
List<IClasspathEntry> result = new ArrayList<IClasspathEntry>();

Back to the top