Author: xavier
Date: Tue Mar  6 07:03:00 2007
New Revision: 515137

URL: http://svn.apache.org/viewvc?view=rev&rev=515137
Log:
FIX: latest conflict with latest-time strategy and transitive eviction (IVY-407)

Added:
    
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivy-latest-time-transitivity.xml
    
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivyconf-latest-time-transitivity.xml
    incubator/ivy/core/trunk/test/repositories/IVY-407/
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/ivy-1.0.0.xml
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/lib/
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/lib/A-1.0.0.jar
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/thirdparty/
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/thirdparty/A-1.0.0.tar.gz
   (with props)
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/ivy-1.0.0.xml
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/lib/
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/lib/B-1.0.0.jar
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/thirdparty/
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/thirdparty/B-1.0.0.tar.gz
   (with props)
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.0.xml
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.1.xml
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.2.xml
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.0.jar
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.1.jar
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.2.jar
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.0.tar.gz
   (with props)
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.1.tar.gz
   (with props)
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.2.tar.gz
   (with props)
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/ivy-1.0.0.xml
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/lib/
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/lib/D-1.0.0.jar
    incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/thirdparty/
    
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/thirdparty/D-1.0.0.tar.gz
   (with props)
Modified:
    incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNodeEviction.java
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java
    
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java?view=diff&rev=515137&r1=515136&r2=515137
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java 
(original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java 
Tue Mar  6 07:03:00 2007
@@ -1091,4 +1091,19 @@
     public int hashCode() {
         return getId().hashCode();
     }
+
+    /**
+     * Returns a collection of Nodes in conflict for which conflict has been 
detected
+     * but conflict resolution hasn't been done yet
+     * @param rootModuleConf
+     * @param mid the module id for which pending conflicts should be found
+     * @return a Collection of IvyNode in pending conflict
+     */
+       public Collection getPendingConflicts(String rootModuleConf, ModuleId 
mid) {
+               return _eviction.getPendingConflicts(rootModuleConf, mid);
+       }
+
+       public void setPendingConflicts(ModuleId moduleId, String 
rootModuleConf, Collection conflicts) {
+               _eviction.setPendingConflicts(moduleId, rootModuleConf, 
conflicts);
+       }
 }

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNodeEviction.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNodeEviction.java?view=diff&rev=515137&r1=515136&r2=515137
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNodeEviction.java
 (original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNodeEviction.java
 Tue Mar  6 07:03:00 2007
@@ -114,6 +114,7 @@
     private IvyNode _node;
 
     private Map _selectedDeps = new HashMap(); // Map (ModuleIdConf -> 
Set(Node)) // map indicating for each dependency which node has been selected
+    private Map _pendingConflicts = new HashMap(); // Map (ModuleIdConf -> 
Set(Node)) // map indicating for each dependency which nodes are in pending 
conflict (conflict detected but not yet resolved)
 
     private Map _evictedDeps = new HashMap(); // Map (ModuleIdConf -> 
Set(Node)) // map indicating for each dependency which node has been evicted
     private Map _evictedRevs = new HashMap(); // Map (ModuleIdConf -> 
Set(ModuleRevisionId)) // map indicating for each dependency which revision has 
been evicted
@@ -305,5 +306,22 @@
         // we didn't find this mrid in the selected ones for the root: it has 
been previously evicted
         return new EvictionData(rootModuleConf, ancestor, 
_node.getRoot().getConflictManager(_node.getModuleId()), selectedNodes);
     }
+
+       public Collection getPendingConflicts(String rootModuleConf, ModuleId 
mid) {
+        Collection resolved = (Collection)_pendingConflicts.get(new 
ModuleIdConf(mid, rootModuleConf));
+        Set ret = new HashSet();
+        if (resolved != null) {
+            for (Iterator iter = resolved.iterator(); iter.hasNext();) {
+                IvyNode node = (IvyNode)iter.next();
+                ret.add(node.getRealNode());
+            }
+        }
+        return ret;
+       }
+
+       public void setPendingConflicts(ModuleId moduleId, String 
rootModuleConf, Collection conflicts) {
+        ModuleIdConf moduleIdConf = new ModuleIdConf(moduleId, rootModuleConf);
+        _pendingConflicts.put(moduleIdConf, new HashSet(conflicts));
+       }
 
 }

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java?view=diff&rev=515137&r1=515136&r2=515137
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java
 (original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java
 Tue Mar  6 07:03:00 2007
@@ -578,17 +578,52 @@
     private void resolveConflict(VisitNode node) {
         resolveConflict(node, node.getParent(), Collections.EMPTY_SET);
     }
-    private void resolveConflict(VisitNode node, VisitNode ancestor, 
Collection toevict) {
+    /**
+     * Resolves conflict for the given node in the given ancestor.
+     * This method do conflict resolution in ancestor parents recursively,
+     * unless not necessary.
+     * @param node the node for which conflict resolution should be done
+     * @param ancestor the ancestor in which the conflict resolution should be 
done
+     * @param toevict a collection of IvyNode to evict (as computed by 
conflict resolution in descendants of ancestor)
+     * @return true if conflict resolution has been done, false it can't be 
done yet
+     */
+    private boolean resolveConflict(VisitNode node, VisitNode ancestor, 
Collection toevict) {
         if (ancestor == null || node == ancestor) {
-            return;
+            return true;
         }
         // check if job is not already done
-        if (checkConflictSolved(node, ancestor)) {
-            return;
+        if (checkConflictSolvedEvicted(node, ancestor)) {
+               // job is done and node is evicted, nothing to do
+            return true;
+        }
+        if (checkConflictSolvedSelected(node, ancestor)) {
+               // job is done and node is selected, nothing to do for this 
ancestor, but we still have 
+               // to check higher levels, for which conflict resolution might 
have been impossible
+               // before
+               if (resolveConflict(node, ancestor.getParent(), toevict)) {
+                       // now that conflict resolution is ok in ancestors
+                       // we just have to check if the node wasn't previously 
evicted in root ancestor
+                       EvictionData evictionData = 
node.getEvictionDataInRoot(node.getRootModuleConf(), ancestor);
+                       if (evictionData != null) {
+                               // node has been previously evicted in an 
ancestor: we mark it as evicted
+                               if (_settings.debugConflictResolution()) {
+                                       Message.debug(node+" was previously 
evicted in root module conf "+node.getRootModuleConf());
+                               }
+
+                               node.markEvicted(evictionData);                
+                               if (_settings.debugConflictResolution()) {
+                                       Message.debug("evicting "+node+" by 
"+evictionData);
+                               }
+                       }
+                       return true;
+               } else {
+                       return false;
+               }
         }
         
         // compute conflicts
         Collection resolvedNodes = new 
HashSet(ancestor.getNode().getResolvedNodes(node.getModuleId(), 
node.getRootModuleConf()));
+        
resolvedNodes.addAll(ancestor.getNode().getPendingConflicts(node.getRootModuleConf(),
 node.getModuleId()));
         Collection conflicts = computeConflicts(node, ancestor, toevict, 
resolvedNodes);
         
         if (_settings.debugConflictResolution()) {
@@ -601,8 +636,10 @@
                if (resolved == null) {
             if (_settings.debugConflictResolution()) {
                 Message.debug("impossible to resolve conflicts for "+node+" in 
"+ancestor+" yet");
+                Message.debug("setting all nodes as pending conflicts for 
later conflict resolution: "+conflicts);
             }
-            return;
+            ancestor.getNode().setPendingConflicts(node.getModuleId(), 
node.getRootModuleConf(), conflicts);
+            return false;
         }
         
         if (_settings.debugConflictResolution()) {
@@ -633,8 +670,9 @@
             evicted.removeAll(resolved);
             evicted.addAll(toevict);
             ancestor.getNode().setEvictedNodes(node.getModuleId(), 
node.getRootModuleConf(), evicted);
+            ancestor.getNode().setPendingConflicts(node.getModuleId(), 
node.getRootModuleConf(), Collections.EMPTY_SET);
             
-            resolveConflict(node, ancestor.getParent(), toevict);
+            return resolveConflict(node, ancestor.getParent(), toevict);
         } else {
             // node has been evicted for the current parent
             if (resolved.isEmpty()) {
@@ -652,6 +690,7 @@
             evicted.addAll(toevict);
             evicted.add(node.getNode());
             ancestor.getNode().setEvictedNodes(node.getModuleId(), 
node.getRootModuleConf(), evicted);
+            ancestor.getNode().setPendingConflicts(node.getModuleId(), 
node.getRootModuleConf(), Collections.EMPTY_SET);
 
             
             node.markEvicted(ancestor, conflictManager, resolved);
@@ -661,16 +700,17 @@
 
             // if resolved changed we have to go up in the graph
             Collection prevResolved = 
ancestor.getNode().getResolvedNodes(node.getModuleId(), 
node.getRootModuleConf());
+            boolean solved = true;
             if (!prevResolved.equals(resolved)) {                
                 ancestor.getNode().setResolvedNodes(node.getModuleId(), 
node.getRootModuleConf(), resolved);
                 for (Iterator iter = resolved.iterator(); iter.hasNext();) {
                     IvyNode sel = (IvyNode)iter.next();
                     if (!prevResolved.contains(sel)) {
-                        resolveConflict(node.gotoNode(sel), 
ancestor.getParent(), toevict);
+                        solved &= resolveConflict(node.gotoNode(sel), 
ancestor.getParent(), toevict);
                     }
                 }
             }
-
+            return solved;
         }
     }
 
@@ -705,29 +745,20 @@
         return conflicts;
     }
 
-    private boolean checkConflictSolved(VisitNode node, VisitNode ancestor) {
+    private boolean checkConflictSolvedSelected(VisitNode node, VisitNode 
ancestor) {
         if 
(ancestor.getResolvedRevisions(node.getModuleId()).contains(node.getResolvedId()))
 {
             // resolve conflict has already be done with node with the same id
-            // => job already done, we just have to check if the node wasn't 
previously evicted in root ancestor
             if (_settings.debugConflictResolution()) {
                 Message.debug("conflict resolution already done for "+node+" 
in "+ancestor);
             }
-            EvictionData evictionData = 
node.getEvictionDataInRoot(node.getRootModuleConf(), ancestor);
-            if (evictionData != null) {
-                // node has been previously evicted in an ancestor: we mark it 
as evicted
-                if (_settings.debugConflictResolution()) {
-                    Message.debug(node+" was previously evicted in root module 
conf "+node.getRootModuleConf());
-                }
-
-                node.markEvicted(evictionData);                
-                if (_settings.debugConflictResolution()) {
-                    Message.debug("evicting "+node+" by "+evictionData);
-                }
-            }
             return true;
-        } else if 
(ancestor.getEvictedRevisions(node.getModuleId()).contains(node.getResolvedId()))
 {
+        } 
+        return false;
+    }
+
+    private boolean checkConflictSolvedEvicted(VisitNode node, VisitNode 
ancestor) {
+        if 
(ancestor.getEvictedRevisions(node.getModuleId()).contains(node.getResolvedId()))
 {
             // resolve conflict has already be done with node with the same id
-            // => job already done, we just have to check if the node wasn't 
previously selected in root ancestor
             if (_settings.debugConflictResolution()) {
                 Message.debug("conflict resolution already done for "+node+" 
in "+ancestor);
             }

Modified: 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java?view=diff&rev=515137&r1=515136&r2=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java
 (original)
+++ 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java
 Tue Mar  6 07:03:00 2007
@@ -126,7 +126,50 @@
         }
     }
     
+    /*
+    Test case for issue IVY-407 (with transitivity)
+
+    There are 5 modules A, B, C, D and E.
+               1) publish C-1.0.0, C-1.0.1 and C-1.0.2
+               2) B needs C-1.0.0 : retrieve ok and publish B-1.0.0
+               3) A needs B-1.0.0 and C-1.0.2 : retrieve ok and publish A-1.0.0
+               4) D needs C-1.0.1 : retrieve ok and publish D-1.0.0
+               5) E needs D-1.0.0 and A-1.0.0 (D before A in ivy file) 
retrieve failed to get C-1.0.2 from A
+               (get apparently C-1.0.1 from D)
+     */
+    public void testLatestTimeTransitivity() throws Exception {
+       ivy = new Ivy();
+       ivy.configure(LatestConflictManagerTest.class
+                       .getResource("ivyconf-latest-time-transitivity.xml"));
+       ivy.getSettings().setVariable("ivy.log.conflict.resolution", "true", 
true);
+       ResolveReport report =
+               ivy.resolve( LatestConflictManagerTest.class.getResource( 
"ivy-latest-time-transitivity.xml" ), 
+                               getResolveOptions() );
+       ConfigurationResolveReport defaultReport =
+               report.getConfigurationReport("default");
+       Iterator iter = defaultReport.getModuleRevisionIds().iterator();
+       while (iter.hasNext()) {
+               ModuleRevisionId mrid = (ModuleRevisionId)iter.next();
+
+               if (mrid.getName().equals("A")) {
+                       assertEquals("A revision should be 1.0.0", "1.0.0", 
mrid.getRevision());
+               }
+               else if (mrid.getName().equals("D")) {
+                       assertEquals("D revision should be 1.0.0", "1.0.0", 
mrid.getRevision());
+               }
+               // by transitivity
+               else if (mrid.getName().equals("B")) {
+                       assertEquals("B revision should be 1.0.0", "1.0.0", 
mrid.getRevision());
+               }
+               else if (mrid.getName().equals("C")) {
+                       assertEquals("C revision should be 1.0.2", "1.0.2", 
mrid.getRevision());
+               }
+       }
+    }
+
     private ResolveOptions getResolveOptions() {
-               return new 
ResolveOptions().setCache(CacheManager.getInstance(ivy.getSettings())).setValidate(false);
+               return new ResolveOptions()
+                       .setCache(CacheManager.getInstance(ivy.getSettings()))
+                       .setValidate(false);
        }
 }

Added: 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivy-latest-time-transitivity.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivy-latest-time-transitivity.xml?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivy-latest-time-transitivity.xml
 (added)
+++ 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivy-latest-time-transitivity.xml
 Tue Mar  6 07:03:00 2007
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ivy-module version="1.0">
+  <info organisation="MyCompany" module="E" revision="1.0.0" status="release" 
/>
+  <dependencies>
+    <dependency org="MyCompany" name="D" rev="1.0.0" changing="true" />
+    <dependency org="MyCompany" name="A" rev="1.0.0" changing="true" />
+  </dependencies>
+</ivy-module>
\ No newline at end of file

Added: 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivyconf-latest-time-transitivity.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivyconf-latest-time-transitivity.xml?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivyconf-latest-time-transitivity.xml
 (added)
+++ 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/ivyconf-latest-time-transitivity.xml
 Tue Mar  6 07:03:00 2007
@@ -0,0 +1,12 @@
+<ivyconf>
+
+    <conf defaultResolver="test" defaultConflictManager="latest-time" />
+
+    <resolvers>
+       <filesystem name="test" latest="latest-time" checkmodified="true">
+        <artifact 
pattern="test/repositories/IVY-407/[organisation]/[module]/[type]/[artifact]-[revision].[ext]"
 />
+        <ivy 
pattern="test/repositories/IVY-407/[organisation]/[module]/ivy-[revision].xml" 
/>
+      </filesystem>
+   </resolvers>
+
+</ivyconf>

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/ivy-1.0.0.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/ivy-1.0.0.xml?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/ivy-1.0.0.xml 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/ivy-1.0.0.xml 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="1.0">
+  <info organisation="MyCompany" module="A" revision="1.0.0" 
status="integration" publication="20070226113607"/>
+  <configurations>
+   <conf name="all"/>
+  </configurations>
+  <publications>
+    <artifact name="A" ext="tar.gz" type="thirdparty" conf="all"/>
+    <artifact name="A" ext="jar" type="lib" conf="all"/>
+  </publications>
+  <dependencies>
+    <dependency org="MyCompany" name="B" rev="1.0.0" changing="true"/>
+    <dependency org="MyCompany" name="C" rev="1.0.2" changing="true"/>
+  </dependencies>
+</ivy-module>

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/lib/A-1.0.0.jar
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/lib/A-1.0.0.jar?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/lib/A-1.0.0.jar 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/lib/A-1.0.0.jar 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,3 @@
+
+       A.jar REV 1.0.0 DATE February 26 2007 1136
+ 
\ No newline at end of file

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/thirdparty/A-1.0.0.tar.gz
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/thirdparty/A-1.0.0.tar.gz?view=auto&rev=515137
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/A/thirdparty/A-1.0.0.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/ivy-1.0.0.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/ivy-1.0.0.xml?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/ivy-1.0.0.xml 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/ivy-1.0.0.xml 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="1.0">
+  <info organisation="MyCompany" module="B" revision="1.0.0" 
status="integration" publication="20070226112304"/>
+  <configurations>
+   <conf name="all"/>
+  </configurations>
+  <publications>
+    <artifact name="B" ext="tar.gz" type="thirdparty" conf="all"/>
+    <artifact name="B" ext="jar" type="lib" conf="all"/>
+  </publications>
+  <dependencies>
+    <dependency org="MyCompany" name="C" rev="1.0.0" changing="true"/>
+  </dependencies>
+</ivy-module>

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/lib/B-1.0.0.jar
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/lib/B-1.0.0.jar?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/lib/B-1.0.0.jar 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/lib/B-1.0.0.jar 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,3 @@
+
+       B.jar REV 1.0.0 DATE February 26 2007 1123
+ 
\ No newline at end of file

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/thirdparty/B-1.0.0.tar.gz
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/thirdparty/B-1.0.0.tar.gz?view=auto&rev=515137
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/B/thirdparty/B-1.0.0.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.0.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.0.xml?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.0.xml 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.0.xml 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="1.0">
+  <info organisation="MyCompany" module="C" revision="1.0.0" 
status="integration" publication="20070226112211"/>
+  <configurations>
+   <conf name="all"/>
+  </configurations>
+  <publications>
+    <artifact name="C" ext="tar.gz" type="thirdparty" conf="all"/>
+    <artifact name="C" ext="jar" type="lib" conf="all"/>
+  </publications>
+  <dependencies>
+  </dependencies>
+</ivy-module>

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.1.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.1.xml?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.1.xml 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.1.xml 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="1.0">
+  <info organisation="MyCompany" module="C" revision="1.0.1" 
status="integration" publication="20070226112225"/>
+  <configurations>
+   <conf name="all"/>
+  </configurations>
+  <publications>
+    <artifact name="C" ext="tar.gz" type="thirdparty" conf="all"/>
+    <artifact name="C" ext="jar" type="lib" conf="all"/>
+  </publications>
+  <dependencies>
+  </dependencies>
+</ivy-module>

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.2.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.2.xml?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.2.xml 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/ivy-1.0.2.xml 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="1.0">
+  <info organisation="MyCompany" module="C" revision="1.0.2" 
status="integration" publication="20070226112233"/>
+  <configurations>
+   <conf name="all"/>
+  </configurations>
+  <publications>
+    <artifact name="C" ext="tar.gz" type="thirdparty" conf="all"/>
+    <artifact name="C" ext="jar" type="lib" conf="all"/>
+  </publications>
+  <dependencies>
+  </dependencies>
+</ivy-module>

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.0.jar
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.0.jar?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.0.jar 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.0.jar 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,3 @@
+
+       C.jar REV 1.0.0 DATE February 26 2007 1122
+ 
\ No newline at end of file

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.1.jar
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.1.jar?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.1.jar 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.1.jar 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,3 @@
+
+       C.jar REV 1.0.1 DATE February 26 2007 1122
+ 
\ No newline at end of file

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.2.jar
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.2.jar?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.2.jar 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/lib/C-1.0.2.jar 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,3 @@
+
+       C.jar REV 1.0.2 DATE February 26 2007 1122
+ 
\ No newline at end of file

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.0.tar.gz
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.0.tar.gz?view=auto&rev=515137
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.0.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.1.tar.gz
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.1.tar.gz?view=auto&rev=515137
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.1.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.2.tar.gz
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.2.tar.gz?view=auto&rev=515137
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/C/thirdparty/C-1.0.2.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/ivy-1.0.0.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/ivy-1.0.0.xml?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/ivy-1.0.0.xml 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/ivy-1.0.0.xml 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="1.0">
+  <info organisation="MyCompany" module="D" revision="1.0.0" 
status="integration" publication="20070226112331"/>
+  <configurations>
+   <conf name="all"/>
+  </configurations>
+  <publications>
+    <artifact name="D" ext="tar.gz" type="thirdparty" conf="all"/>
+    <artifact name="D" ext="jar" type="lib" conf="all"/>
+  </publications>
+  <dependencies>
+    <dependency org="MyCompany" name="C" rev="1.0.1" changing="true"/>
+  </dependencies>
+</ivy-module>

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/lib/D-1.0.0.jar
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/lib/D-1.0.0.jar?view=auto&rev=515137
==============================================================================
--- 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/lib/D-1.0.0.jar 
(added)
+++ 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/lib/D-1.0.0.jar 
Tue Mar  6 07:03:00 2007
@@ -0,0 +1,3 @@
+
+       D.jar REV 1.0.0 DATE February 26 2007 1123
+ 
\ No newline at end of file

Added: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/thirdparty/D-1.0.0.tar.gz
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/thirdparty/D-1.0.0.tar.gz?view=auto&rev=515137
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/ivy/core/trunk/test/repositories/IVY-407/MyCompany/D/thirdparty/D-1.0.0.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream


Reply via email to