Index: org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyDEPreferenceStoreHelper.java
===================================================================
--- org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyDEPreferenceStoreHelper.java (revision 790836)
+++ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyDEPreferenceStoreHelper.java (working copy)
@@ -212,4 +212,12 @@
prefStore.setValue(PreferenceConstants.AUTO_RESOLVE_ON_OPEN, autoResolveOnOpen);
}
+ public boolean getIgnoreVersionOnWorkspaceProjects() {
+ return prefStore.getBoolean(PreferenceConstants.IGNORE_VERSION_ON_WORKSPACE_PROJECTS);
+ }
+
+ public void setIgnoreVersionOnWorkspaceProjects(boolean ignoreVersionOnWorkspaceProjects) {
+ prefStore.setValue(PreferenceConstants.IGNORE_VERSION_ON_WORKSPACE_PROJECTS,
+ ignoreVersionOnWorkspaceProjects);
+ }
}
Index: org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceConstants.java
===================================================================
--- org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceConstants.java (revision 790836)
+++ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceConstants.java (working copy)
@@ -76,4 +76,5 @@
public static final String AUTO_RESOLVE_ON_CLOSE = "autoResolve.close";
+ public static final String IGNORE_VERSION_ON_WORKSPACE_PROJECTS = "workspaceResolver.ignoreVersion";
}
Index: org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceInitializer.java
===================================================================
--- org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceInitializer.java (revision 790836)
+++ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceInitializer.java (working copy)
@@ -66,6 +66,8 @@
public static final boolean DEFAULT_AUTO_RESOLVE_ON_OPEN = false;
+ public static final boolean DEFAULT_IGNORE_VERSION_ON_WORKSPACE_PROJECTS = false;
+
public void initializeDefaultPreferences() {
IPreferenceStore store = IvyPlugin.getDefault().getPreferenceStore();
store.setDefault(PreferenceConstants.P_BOOLEAN, true);
@@ -111,6 +113,7 @@
store.setDefault(PreferenceConstants.AUTO_RESOLVE_ON_CLOSE, DEFAULT_AUTO_RESOLVE_ON_CLOSE);
store.setDefault(PreferenceConstants.AUTO_RESOLVE_ON_OPEN, DEFAULT_AUTO_RESOLVE_ON_OPEN);
+ store.setDefault(PreferenceConstants.IGNORE_VERSION_ON_WORKSPACE_PROJECTS, DEFAULT_IGNORE_VERSION_ON_WORKSPACE_PROJECTS);
}
}
Index: org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/WorkspaceResolverPreferencePage.java
===================================================================
--- org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/WorkspaceResolverPreferencePage.java (revision 790836)
+++ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/WorkspaceResolverPreferencePage.java (working copy)
@@ -67,6 +67,18 @@
};
addField(autoResolveOnOpen);
+ BooleanFieldEditor ignoreVersionOnWorkspaceProjects = new BooleanFieldEditor(
+ PreferenceConstants.IGNORE_VERSION_ON_WORKSPACE_PROJECTS ,
+ "Ignore version when resolving workspace projects",
+ fieldParent) {
+ protected Label getLabelControl() {
+ Label label = super.getLabelControl();
+ label.setToolTipText("Will ignore the artifact version when resolving "
+ + "against workspace projects");
+ return label;
+ }
+ };
+ addField(ignoreVersionOnWorkspaceProjects);
}
public void init(IWorkbench workbench) {
Index: org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/workspaceresolver/WorkspaceResolver.java
===================================================================
--- org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/workspaceresolver/WorkspaceResolver.java (revision 790836)
+++ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/workspaceresolver/WorkspaceResolver.java (working copy)
@@ -61,31 +61,31 @@
* changes, this resolver will link dependent projects when they are open in the same workspace,
* allowing full-fledged linked project functionality Eclipse provides, such as incremental
* compilation, debugging, mouseover javadocs, and source browsing across projects.
- *
+ *
* How it works During a resolve, it looks at all open projects in the workspace that have
* Ivy containers. The first project that publishes the module on which the project being
* resolved depends, will be picked and returned as a special type of artifact called "project".
- *
+ *
* The IvyClasspathContainer will recognize the artifact as a project and put the eclipse project as
* a dependent project within the classpath container of the parent.
- *
+ *
* If you do not want a project to be linked as a dependency, close it or delete from the workspace.
* As soon as you do that, any projects that were linked to it will automatically re-resolve (see
* {@link WorkspaceResourceChangeListener}) and use the standard Ivy means of finding the
* dependency.
- *
+ *
* The {@link WorkspaceResourceChangeListener} will also auto-resolve when a new project is added or
* opened, so opening a project will automatically link it into the currently open projects where
* necessary.
- *
+ *
* Since the resolver is not aware which module revision a project is publishing, it optimistically
* matches any revision of the module.
- *
+ *
* Since the resolver stops after finding the first open project which matches the module, having
* multiple open versions of the same project in the workspace (for example, different branches) may
* set the wrong version as a dependency. You are advised to only open the version of the project
* which you want other projects in the workspace to depend on.
- *
+ *
* NOTE: Transitive dependencies are not passed from the dependent project to the parent when
* projects are linked. If you find you are missing some transitive dependencies, just set your
* dependent eclipse project to export its ivy dependencies. (Project->Properties->Java Build
@@ -179,7 +179,8 @@
}
// Found one; check if it is for the module we need
- if (versionMatcher.accept(dd.getDependencyRevisionId(), md)) {
+ if (IvyPlugin.getPreferenceStoreHelper().getIgnoreVersionOnWorkspaceProjects() ||
+ versionMatcher.accept(dd.getDependencyRevisionId(), md)) {
Artifact af = new DefaultArtifact(md.getModuleRevisionId(), md
.getPublicationDate(), javaProject.getPath().toString(),