You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by xa...@apache.org on 2007/03/06 15:03:05 UTC
svn commit: r515137 - in /incubator/ivy/core/trunk:
src/java/org/apache/ivy/core/resolve/
test/java/org/apache/ivy/plugins/conflict/ test/repositories/IVY-407/
test/repositories/IVY-407/MyCompany/ test/repositories/IVY-407/MyCompany/A/
test/repositorie...
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