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(),