Author: hibou
Date: Tue Nov  2 13:19:55 2010
New Revision: 1030034

URL: http://svn.apache.org/viewvc?rev=1030034&view=rev
Log:
IVY-1243 : when useCacheOnly is used, don't do any TTL check

Modified:
    ant/ivy/core/trunk/CHANGES.txt
    
ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/CacheMetadataOptions.java
    
ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java
    
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java

Modified: ant/ivy/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=1030034&r1=1030033&r2=1030034&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Tue Nov  2 13:19:55 2010
@@ -119,6 +119,7 @@ for detailed view of each issue, please 
 - FIX: OutOfMemoryError when uploading large files using commons-httpclient 
(IVY-1197) (thanks to Torkild U. Resheim)
 - FIX: Only the last dependency descriptor is taken into account on the same 
module (IVY-1240)
 - FIX: UseCacheOnly doesn't respect the cache configuration in the ivysettings 
(IVY-1227)
+- FIX: UseCacheOnly is influenced by the TTL on cached metadata (IVY-1243)
 
    2.2.0
 =====================================

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/CacheMetadataOptions.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/CacheMetadataOptions.java?rev=1030034&r1=1030033&r2=1030034&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/CacheMetadataOptions.java 
(original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/CacheMetadataOptions.java 
Tue Nov  2 13:19:55 2010
@@ -25,6 +25,7 @@ public class CacheMetadataOptions extend
     private Boolean isCheckmodified = null;
     private String changingMatcherName = null;
     private String changingPattern = null;
+    private boolean checkTTL = true;
     
     public Namespace getNamespace() {
         return namespace;
@@ -61,4 +62,11 @@ public class CacheMetadataOptions extend
         this.changingPattern  = changingPattern;
         return this;
     }
+    public CacheMetadataOptions setCheckTTL(boolean checkTTL) {
+        this.checkTTL = checkTTL;
+        return this;
+    }
+    public boolean isCheckTTL() {
+        return checkTTL;
+    }
 }

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java?rev=1030034&r1=1030033&r2=1030034&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java
 (original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java
 Tue Nov  2 13:19:55 2010
@@ -701,12 +701,14 @@ public class DefaultRepositoryCacheManag
                     + ": inconsistent or old cache: no cached resolved time 
for " + mrid);
                 saveResolvedRevision(mrid, resolvedRevision);
                 return resolvedRevision;
-            } 
-            long expiration = Long.parseLong(resolvedTime) + getTTL(mrid);
-            if (expiration > 0 // negative expiration means that 
Long.MAX_VALUE has been exceeded
-                    && System.currentTimeMillis() > expiration) {
-                Message.verbose(getName() + ": cached resolved revision 
expired for " + mrid);
-                return null;
+            }
+            if (options.isCheckTTL()) {
+                long expiration = Long.parseLong(resolvedTime) + getTTL(mrid);
+                if (expiration > 0 // negative expiration means that 
Long.MAX_VALUE has been exceeded
+                        && System.currentTimeMillis() > expiration) {
+                    Message.verbose(getName() + ": cached resolved revision 
expired for " + mrid);
+                    return null;
+                }
             }
             return resolvedRevision;
         } finally {

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java?rev=1030034&r1=1030033&r2=1030034&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
 (original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
 Tue Nov  2 13:19:55 2010
@@ -436,6 +436,7 @@ public abstract class AbstractResolver 
         return (CacheMetadataOptions) new CacheMetadataOptions()
             .setChangingMatcherName(getChangingMatcherName())
             .setChangingPattern(getChangingPattern())
+            .setCheckTTL(!data.getOptions().isUseCacheOnly())
             .setCheckmodified(data.getOptions().isUseCacheOnly() ? 
Boolean.FALSE : checkmodified)
             .setValidate(doValidate(data))
             .setNamespace(getNamespace())


Reply via email to