You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/12/14 17:59:13 UTC

svn commit: r487256 - /lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/ac/file/FilePolicyManager.java

Author: andreas
Date: Thu Dec 14 08:59:12 2006
New Revision: 487256

URL: http://svn.apache.org/viewvc?view=rev&rev=487256
Log:
Performance improvements in URL handling in file policy manager.

Modified:
    lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/ac/file/FilePolicyManager.java

Modified: lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/ac/file/FilePolicyManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/ac/file/FilePolicyManager.java?view=diff&rev=487256&r1=487255&r2=487256
==============================================================================
--- lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/ac/file/FilePolicyManager.java (original)
+++ lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/ac/file/FilePolicyManager.java Thu Dec 14 08:59:12 2006
@@ -44,6 +44,7 @@
 import org.apache.cocoon.util.NetUtils;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
+import org.apache.excalibur.source.SourceUtil;
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.Accreditable;
 import org.apache.lenya.ac.AccreditableManager;
@@ -192,8 +193,7 @@
             url = "";
         }
 
-        File policyFile = new File(getPoliciesDirectory(), url + File.separator + policyFilename);
-        String policyUri = policyFile.toURI().toString();
+        final String policyUri = this.policiesDirectoryUri + "/" + url + "/" + policyFilename;
         if (getLogger().isDebugEnabled()) {
             getLogger().debug("Computing policy URI [" + policyUri + "]");
         }
@@ -210,13 +210,23 @@
      */
     protected File getPolicyFile(String url, String policyFilename) throws AccessControlException {
         String fileUri = getPolicySourceURI(url, policyFilename);
-        File file;
+        SourceResolver resolver = null;
+        Source source = null;
         try {
-            file = new File(new URI(NetUtils.encodePath(fileUri)));
+            resolver = (SourceResolver) this.serviceManager.lookup(SourceResolver.ROLE);
+            source = resolver.resolveURI(fileUri);
+            return SourceUtil.getFile(source);
         } catch (final Exception e) {
             throw new AccessControlException(e);
         }
-        return file;
+        finally {
+            if (resolver != null) {
+                if (source != null) {
+                    resolver.release(source);
+                }
+                this.serviceManager.release(resolver);
+            }
+        }
     }
 
     /**



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