IvyDE
  1. IvyDE
  2. IVYDE-235

Add configuration option to use an extended revision id when resolving eclipse projects

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0.0.final
    • Fix Version/s: 2.2.0.beta1
    • Component/s: classpath container
    • Labels:
      None

      Description

      The current resolve code in IvyDE leverages the default revision id of the form [org]-[module] in the resolution cache. A custom revision id cannot be currently specified in the Ivy ResolveOptions as it can effectively be done via the API and in the ant tasks. This leads to resolution cache collisions when more than project exist on the same module in the eclipse workspace.

      A standard technique to improve workspace dependency resolution is to leverage the revision attribute in the module descriptor (and the branch attribute as proposed in IVYDE-234). However this technique has limitations due to the aforementioned resolution cache collision which force the developer to manually re-resolve affected projects to ensure that the workspace dependencies (as well as the classpath container) are properly computed. By allowing the developer to optionally cache and load resolve reports using an extended resolve id that uses more information found in the attributes of the module descriptor, resolution cache collisions can be avoided.

      A configuration option on the global configuration page under the classpath configuration submenu is proposed: specifically a boolean checkbox underneath the 'Resolve dependencies in the workspace' checkbox. This new boolean would default to false (unchecked) and would be titled 'Use extended resolve id in the resolution cache'.

      To ensure the lowest probability of resolution cache collision, the proposed forms of the extended revision id against the contents of the unpublished module descriptor info tag are as follows:

      <info organisation="myorg" module="mymod" branch="mybranch" revision="2.1" status="milestone"/>
      resolveId = myorg-mymod-milestone-mybranch-2.1

      <info organisation="myorg" module="mymod" revision="3"/>
      resolveId = myorg-mymod-integration--3

      <info organisation="myorg" module="mymod"/>
      resolveId = myorg-mymod-integration--working@myworkstation.mydomain.com

      1. ivyde-235.patch
        16 kB
        Jeffrey M. Metcalf

        Activity

        Hide
        Jeffrey M. Metcalf added a comment -

        Attaching patch to implement this feature. This patch must be applied after the patch for new feature IVYDE-234.

        Show
        Jeffrey M. Metcalf added a comment - Attaching patch to implement this feature. This patch must be applied after the patch for new feature IVYDE-234 .
        Hide
        Nicolas Lalevée added a comment -

        I am sorry this issue stayed open so long with a provided patch. I must have missed it.

        The patch doesn't apply well now. I'll try to get it updated unless you have an updated version.

        Show
        Nicolas Lalevée added a comment - I am sorry this issue stayed open so long with a provided patch. I must have missed it. The patch doesn't apply well now. I'll try to get it updated unless you have an updated version.
        Hide
        Nicolas Lalevée added a comment -

        I finally got it. Thanks for the patch Jeffrey. And again sorry for the delay.

        Show
        Nicolas Lalevée added a comment - I finally got it. Thanks for the patch Jeffrey. And again sorry for the delay.

          People

          • Assignee:
            Nicolas Lalevée
            Reporter:
            Jeffrey M. Metcalf
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 48h
              48h
              Remaining:
              Remaining Estimate - 48h
              48h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development