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

                 Key: IVYDE-235
                 URL: https://issues.apache.org/jira/browse/IVYDE-235
             Project: IvyDE
          Issue Type: New Feature
          Components: classpath container
    Affects Versions: 2.0.0.final
            Reporter: Jeffrey M. Metcalf
            Priority: Minor
             Fix For: 2.1.0


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 = [email protected]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to