xmlgraphics-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jerem...@apache.org
Subject svn commit: r759150 - in /xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache: DefaultExpirationPolicy.java ExpirationPolicy.java TimeStampProvider.java
Date Fri, 27 Mar 2009 14:21:45 GMT
Author: jeremias
Date: Fri Mar 27 14:21:45 2009
New Revision: 759150

URL: http://svn.apache.org/viewvc?rev=759150&view=rev
Log:
Added 60 seconds expiration for invalid URIs in the image cache to recover from temporarily
unavailable images.
(Missed some new classes)

Added:
    xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/DefaultExpirationPolicy.java
  (with props)
    xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/ExpirationPolicy.java
  (with props)
    xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/TimeStampProvider.java
  (with props)

Added: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/DefaultExpirationPolicy.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/DefaultExpirationPolicy.java?rev=759150&view=auto
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/DefaultExpirationPolicy.java
(added)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/DefaultExpirationPolicy.java
Fri Mar 27 14:21:45 2009
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+/* $Id$ */
+
+package org.apache.xmlgraphics.image.loader.cache;
+
+/**
+ * Implements the default expiration policy for the image cache.
+ */
+public class DefaultExpirationPolicy implements ExpirationPolicy {
+
+    public static final int EXPIRATION_IMMEDIATE = 0;
+    public static final int EXPIRATION_NEVER = -1;
+
+    private int expirationAfter; //in seconds
+
+    /**
+     * Creates a new policy with default settings (expiration in 60 seconds).
+     */
+    public DefaultExpirationPolicy() {
+        this(60);
+    }
+
+    /**
+     * Creates a new policy.
+     * @param expirationAfter the expiration in seconds (a negative value means: never expire)
+     */
+    public DefaultExpirationPolicy(int expirationAfter) {
+        this.expirationAfter = expirationAfter;
+    }
+
+    private boolean isNeverExpired() {
+        return (this.expirationAfter < 0);
+    }
+
+    /** {@inheritDoc} */
+    public boolean isExpired(TimeStampProvider provider, long timestamp) {
+        if (isNeverExpired()) {
+            return false;
+        } else {
+            long now = provider.getTimeStamp();
+            return now >= (timestamp + (this.expirationAfter * 1000));
+        }
+    }
+
+}

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/DefaultExpirationPolicy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/DefaultExpirationPolicy.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/ExpirationPolicy.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/ExpirationPolicy.java?rev=759150&view=auto
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/ExpirationPolicy.java
(added)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/ExpirationPolicy.java
Fri Mar 27 14:21:45 2009
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+/* $Id$ */
+
+package org.apache.xmlgraphics.image.loader.cache;
+
+/**
+ * Represents an expiration policy for cache entries that have a creation time stamp.
+ */
+public interface ExpirationPolicy {
+
+    /**
+     * Indicates whether a cache entry is expired given its creation time stamp.
+     * @param provider the provider for new time stamps
+     * @param timestamp the creation time stamp (the semantics of
+     *                   {@link System#currentTimeMillis()} apply)
+     * @return true if the entry is to be considered expired, false if not
+     */
+    boolean isExpired(TimeStampProvider provider, long timestamp);
+
+}

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/ExpirationPolicy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/ExpirationPolicy.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/TimeStampProvider.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/TimeStampProvider.java?rev=759150&view=auto
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/TimeStampProvider.java
(added)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/TimeStampProvider.java
Fri Mar 27 14:21:45 2009
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+
+/* $Id$ */
+
+package org.apache.xmlgraphics.image.loader.cache;
+
+/**
+ * Returns time stamps for the image cache for entry expiration functionality. This functionality
+ * is in its own class so it's easy to write a mock class for testing.
+ */
+class TimeStampProvider {
+
+    /**
+     * Returns the current time stamp.
+     * @return the current time stamp (the value returned follows the semantics of
+     *                   {@link System#currentTimeMillis()})
+     */
+    public long getTimeStamp() {
+        return System.currentTimeMillis();
+    }
+
+}

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/TimeStampProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/image/loader/cache/TimeStampProvider.java
------------------------------------------------------------------------------
    svn:keywords = Id



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org


Mime
View raw message