diff options
author | Stephan Leicht Vogt | 2015-10-19 15:39:50 +0000 |
---|---|---|
committer | Anton Tanasenko | 2015-12-07 18:19:53 +0000 |
commit | 45296327ea2d8a08c888f92a9152991c2f3b1f95 (patch) | |
tree | e0756ec39b81aa5e42362c25a33c4a4eb35e8a4f | |
parent | eb85274d2f8170d35e9c14b7d2868c9cbfc25181 (diff) | |
download | m2e-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>
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>(); |