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/09/06 17:07:32 UTC
svn commit: r573324 - in /incubator/ivy/core/trunk: ./
src/java/org/apache/ivy/plugins/resolver/
test/java/org/apache/ivy/core/resolve/ test/repositories/
test/repositories/1/org9/mod9.2/ivys/
Author: xavier
Date: Thu Sep 6 10:07:31 2007
New Revision: 573324
URL: http://svn.apache.org/viewvc?rev=573324&view=rev
Log:
FIX: Resolving dynamic version fails when using multiple patterns if only one pattern find a revision and others don't (IVY-602)
Added:
incubator/ivy/core/trunk/test/repositories/1/org9/mod9.2/ivys/ivy-1.3.xml (with props)
incubator/ivy/core/trunk/test/repositories/ivysettings-IVY602.xml (with props)
Modified:
incubator/ivy/core/trunk/CHANGES.txt
incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java
incubator/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
Modified: incubator/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?rev=573324&r1=573323&r2=573324&view=diff
==============================================================================
--- incubator/ivy/core/trunk/CHANGES.txt (original)
+++ incubator/ivy/core/trunk/CHANGES.txt Thu Sep 6 10:07:31 2007
@@ -53,6 +53,7 @@
=====================================
- FIX: NullPointerException whilst resolving transitive dependencies (IVY-590)
- FIX: cachepath based on a resolve done in a previous build broken (IVY-583)
+- FIX: Resolving dynamic version fails when using multiple patterns if only one pattern find a revision and others don't (IVY-602)
- IMPROVEMENT: artifactproperty should not overwrite the existing properties (IVY-587)
- IMPROVEMENT: Support *(private) and *(public) in the confs parameter of the resolve (IVY-588)
Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java?rev=573324&r1=573323&r2=573324&view=diff
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java Thu Sep 6 10:07:31 2007
@@ -84,14 +84,13 @@
protected ResolvedResource findResourceUsingPatterns(ModuleRevisionId moduleRevision,
List patternList, Artifact artifact, ResourceMDParser rmdparser, Date date) {
- ResolvedResource rres = null;
-
List resolvedResources = new ArrayList();
boolean dynamic = getSettings().getVersionMatcher().isDynamic(moduleRevision);
boolean stop = false;
for (Iterator iter = patternList.iterator(); iter.hasNext() && !stop;) {
String pattern = (String) iter.next();
- rres = findResourceUsingPattern(moduleRevision, pattern, artifact, rmdparser, date);
+ ResolvedResource rres = findResourceUsingPattern(
+ moduleRevision, pattern, artifact, rmdparser, date);
if (rres != null) {
resolvedResources.add(rres);
stop = !dynamic; // stop iterating if we are not searching a dynamic revision
@@ -101,11 +100,13 @@
if (resolvedResources.size() > 1) {
ResolvedResource[] rress = (ResolvedResource[]) resolvedResources
.toArray(new ResolvedResource[resolvedResources.size()]);
- rres = findResource(rress, getName(), getLatestStrategy(), getSettings()
+ return findResource(rress, getName(), getLatestStrategy(), getSettings()
.getVersionMatcher(), rmdparser, moduleRevision, date);
+ } else if (resolvedResources.size() == 1) {
+ return (ResolvedResource) resolvedResources.get(0);
+ } else {
+ return null;
}
-
- return rres;
}
protected abstract ResolvedResource findResourceUsingPattern(ModuleRevisionId mrid,
Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java?rev=573324&r1=573323&r2=573324&view=diff
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java Thu Sep 6 10:07:31 2007
@@ -2211,6 +2211,24 @@
ModuleRevisionId.newInstance("org1", "mod_released", "1.1")).exists());
}
+ public void testLatestWithMultiplePatterns() throws Exception {
+ // The test verify that latest.integration dependencies can be resolved
+ // when using a resolver with multiple patterns, when only the first pattern
+ // finds something - test case for IVY-602
+
+ // mod9.2 depends on latest.integration of mod6.2
+ Ivy ivy = Ivy.newInstance();
+ ivy.configure(new File("test/repositories/ivysettings-IVY602.xml"));
+
+ ResolveReport report = ivy.resolve(new File(
+ "test/repositories/1/org9/mod9.2/ivys/ivy-1.3.xml").toURL(),
+ getResolveOptions(new String[] {"default"}));
+ assertNotNull(report);
+ assertFalse(report.hasError());
+
+ assertTrue(getArchiveFileInCache("org6", "mod6.2", "2.0", "mod6.2", "jar", "jar").exists());
+ }
+
public void testVersionRange1() throws Exception {
// mod 1.4 depends on mod1.2 [1.0,2.0[
ResolveReport report = ivy.resolve(new File(
Added: incubator/ivy/core/trunk/test/repositories/1/org9/mod9.2/ivys/ivy-1.3.xml
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/1/org9/mod9.2/ivys/ivy-1.3.xml?rev=573324&view=auto
==============================================================================
--- incubator/ivy/core/trunk/test/repositories/1/org9/mod9.2/ivys/ivy-1.3.xml (added)
+++ incubator/ivy/core/trunk/test/repositories/1/org9/mod9.2/ivys/ivy-1.3.xml Thu Sep 6 10:07:31 2007
@@ -0,0 +1,29 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<ivy-module version="1.0">
+ <info organisation="org9"
+ module="mod9.2"
+ revision="1.3"
+ status="integration"
+ publication="20061026110000"
+ />
+ <dependencies>
+ <dependency org="org6" name="mod6.2" rev="latest.integration"/>
+ </dependencies>
+</ivy-module>
Propchange: incubator/ivy/core/trunk/test/repositories/1/org9/mod9.2/ivys/ivy-1.3.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/ivy/core/trunk/test/repositories/ivysettings-IVY602.xml
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/ivysettings-IVY602.xml?rev=573324&view=auto
==============================================================================
--- incubator/ivy/core/trunk/test/repositories/ivysettings-IVY602.xml (added)
+++ incubator/ivy/core/trunk/test/repositories/ivysettings-IVY602.xml Thu Sep 6 10:07:31 2007
@@ -0,0 +1,44 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<ivysettings>
+ <properties file="${ivy.settings.dir}/ivysettings.properties" />
+ <settings defaultCache="${cache.dir}" defaultResolver="test"/>
+ <resolvers>
+ <chain name="test">
+ <filesystem name="1">
+ <ivy pattern="${ivy.settings.dir}/1/[organisation]/[module]/ivys/ivy-[revision].xml"/>
+ <ivy pattern="${ivy.settings.dir}/1/unusedpattern"/>
+ <artifact pattern="${ivy.settings.dir}/1/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
+ </filesystem>
+ <dual name="2">
+ <filesystem name="2-ivy">
+ <ivy pattern="${ivy.settings.dir}/2/[module]/ivy-[revision].xml"/>
+ </filesystem>
+ <filesystem name="2-artifact">
+ <artifact pattern="${ivy.settings.dir}/2/[module]/[artifact]-[revision].[ext]"/>
+ <artifact pattern="${ivy.settings.dir}/2/[module]/[artifact].[ext]"/>
+ </filesystem>
+ </dual>
+ </chain>
+ <filesystem name="install">
+ <ivy pattern="build/test/install/[organisation]/[module]/[artifact]-[revision].[ext]"/>
+ <artifact pattern="build/test/install/[organisation]/[module]/[artifact]-[revision].[ext]"/>
+ </filesystem>
+ </resolvers>
+</ivysettings>
Propchange: incubator/ivy/core/trunk/test/repositories/ivysettings-IVY602.xml
------------------------------------------------------------------------------
svn:eol-style = native