Author: ssmiweve
Date: 2008-07-01 19:59:09 +0200 (Tue, 01 Jul 2008)
New Revision: 6717

Modified:
   trunk/war/pom.xml
   trunk/war/src/main/java/no/sesat/search/http/filters/UrlRewriteFilter.java
   
trunk/war/src/main/java/no/sesat/search/http/urlrewrite/UrlRewriterContainerFactory.java
Log:
Issue SKER3475:  (Use tuckey's urlrewrite improvements relating to 
http://code.google.com/p/urlrewritefilter/issues/detail?id=4)


Modified: trunk/war/pom.xml
===================================================================
--- trunk/war/pom.xml   2008-07-01 10:12:26 UTC (rev 6716)
+++ trunk/war/pom.xml   2008-07-01 17:59:09 UTC (rev 6717)
@@ -225,10 +225,10 @@
       </dependency>
 
       <dependency>
-        <groupId>urlrewrite</groupId>
-        <artifactId>urlrewrite</artifactId>
+        <groupId>org.tuckey</groupId>
+        <artifactId>urlrewritefilter</artifactId>
         <type>jar</type>
-        <version>3.0-schibstedsok-r1</version>
+        <version>3.1.0</version>
       </dependency>
 
       <!-- Reference implementation provided in 
no.sesat.search.http.dwr.DataModelWrapper.java

Modified: 
trunk/war/src/main/java/no/sesat/search/http/filters/UrlRewriteFilter.java
===================================================================
--- trunk/war/src/main/java/no/sesat/search/http/filters/UrlRewriteFilter.java  
2008-07-01 10:12:26 UTC (rev 6716)
+++ trunk/war/src/main/java/no/sesat/search/http/filters/UrlRewriteFilter.java  
2008-07-01 17:59:09 UTC (rev 6717)
@@ -1,4 +1,4 @@
-/* Copyright (2007) Schibsted Søk AS
+/* Copyright (2007-2008) Schibsted Søk AS
  *   This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -22,7 +22,10 @@
 
 package no.sesat.search.http.filters;
 
+import javax.servlet.FilterChain;
+import javax.servlet.ServletContext;
 import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.xml.parsers.DocumentBuilder;
 import no.sesat.search.http.urlrewrite.UrlRewriterContainerFactory;
@@ -30,7 +33,7 @@
 import no.sesat.search.site.SiteContext;
 import no.sesat.search.site.config.DocumentLoader;
 import no.sesat.search.site.config.UrlResourceLoader;
-import org.tuckey.web.filters.urlrewrite.UrlRewriterContainer;
+import org.tuckey.web.filters.urlrewrite.UrlRewriter;
 
 /** Override of tuckey's UrlRewriteFilter that supplies an inputstream to the 
skins's urlrewrite.xml
  *   instead of the default /WEB-INF/urlrewrite.xml
@@ -56,9 +59,12 @@
     // Public --------------------------------------------------------
 
     @Override
-    public UrlRewriterContainer getUrlRewriterContainer(final ServletRequest 
request){
+    protected UrlRewriter getUrlRewriter(
+            final ServletRequest request,
+            final ServletResponse response,
+            final FilterChain chain){
 
-        UrlRewriterContainer result = null;
+        UrlRewriter result = null;
         if(request instanceof HttpServletRequest){
             final HttpServletRequest httpRequest = (HttpServletRequest)request;
             final Site site = (Site) httpRequest.getAttribute(Site.NAME_KEY);
@@ -74,14 +80,13 @@
                         public Site getSite() {
                             return site;
                         }
+                        public ServletContext getServletContext(){
+                            return 
httpRequest.getSession().getServletContext();
+                        }
             });
 
-            result = factory.getUrlRewriterContainer();
+            result = factory.getUrlRewriter();
 
-            if(!result.isLoaded()){
-                result.init(getFilterConfig());
-                result.loadConf();
-            }
         }
         return result;
     }

Modified: 
trunk/war/src/main/java/no/sesat/search/http/urlrewrite/UrlRewriterContainerFactory.java
===================================================================
--- 
trunk/war/src/main/java/no/sesat/search/http/urlrewrite/UrlRewriterContainerFactory.java
    2008-07-01 10:12:26 UTC (rev 6716)
+++ 
trunk/war/src/main/java/no/sesat/search/http/urlrewrite/UrlRewriterContainerFactory.java
    2008-07-01 17:59:09 UTC (rev 6717)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2007) Schibsted Søk AS
+/* Copyright (2006-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -13,7 +13,6 @@
  *
  *   You should have received a copy of the GNU Affero General Public License
  *   along with SESAT.  If not, see <http://www.gnu.org/licenses/>.
-
  */
 /*
  * UrlRewriterContainerFactory.java
@@ -24,11 +23,11 @@
 package no.sesat.search.http.urlrewrite;
 
 import java.io.ByteArrayInputStream;
-import java.io.InputStream;
 import java.io.StringWriter;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import javax.servlet.ServletContext;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -40,14 +39,14 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import no.schibstedsok.commons.ioc.BaseContext;
-import no.sesat.search.site.config.ResourceContext;
 import no.sesat.search.site.config.DocumentLoader;
 import no.sesat.search.site.Site;
 import no.sesat.search.site.SiteContext;
 import no.sesat.search.site.SiteKeyedFactory;
 import no.sesat.search.site.config.DocumentContext;
 import org.apache.log4j.Logger;
-import org.tuckey.web.filters.urlrewrite.UrlRewriterContainer;
+import org.tuckey.web.filters.urlrewrite.Conf;
+import org.tuckey.web.filters.urlrewrite.UrlRewriter;
 import org.w3c.dom.Document;
 
 /** Provides a SiteKeyedFactory around urlrewrite.xml configurations instead 
of tuckey's default
@@ -61,7 +60,9 @@
     /**
      * The context any SearchTabFactory must work against.
      */
-    public interface Context extends BaseContext, DocumentContext, SiteContext 
{}
+    public interface Context extends BaseContext, DocumentContext, SiteContext 
{
+        ServletContext getServletContext();
+    }
 
    // Constants -----------------------------------------------------
 
@@ -83,7 +84,7 @@
 
     // Attributes ----------------------------------------------------
 
-    private final UrlRewriterContainer urlRewriterContainer;
+    private final UrlRewriter urlRewriter;
     private final DocumentLoader loader;
     private final Context context;
 
@@ -121,6 +122,7 @@
 
         try{
             INSTANCES_LOCK.writeLock().lock();
+            urlRewriter.destroy();
             return null != INSTANCES.remove(site);
         }finally{
             INSTANCES_LOCK.writeLock().unlock();
@@ -145,7 +147,7 @@
             loader = context.newDocumentLoader(cxt, URLREWRITE_XMLFILE, 
builder);
 
             // start initialisation
-            urlRewriterContainer = initUrlRewriterContainer();
+            urlRewriter = initUrlRewriter();
 
             // update the store of factories
             INSTANCES.put(context.getSite(), this);
@@ -161,11 +163,11 @@
     /**
      * @return
      */
-    public UrlRewriterContainer getUrlRewriterContainer(){
+    public UrlRewriter getUrlRewriter(){
 
-        LOG.trace("getUrlRewriterContainer()");
+        LOG.trace("getUrlRewriter()");
 
-        return urlRewriterContainer;
+        return urlRewriter;
     }
 
     // Package protected ---------------------------------------------
@@ -175,7 +177,7 @@
     // Private -------------------------------------------------------
 
 
-    private UrlRewriterContainer initUrlRewriterContainer() {
+    private UrlRewriter initUrlRewriter() {
 
         loader.abut();
         LOG.info("Parsing " + URLREWRITE_XMLFILE + " started");
@@ -184,7 +186,15 @@
         // finished
         LOG.info("Parsing " + URLREWRITE_XMLFILE + " finished");
 
-        return new URC(0 < output.trim().length() ? output : EMPTY_RULES);
+        byte[] byteArr = 0 < output.trim().length()
+                ? output.getBytes()
+                : EMPTY_RULES.getBytes();
+
+        return new UrlRewriter(new Conf(
+                context.getServletContext(),
+                new ByteArrayInputStream(byteArr),
+                URLREWRITE_XMLFILE,
+                ""));
     }
 
     private static StringWriter transformDocumentToString(final Document xml){
@@ -206,18 +216,4 @@
 
     // Inner classes -------------------------------------------------
 
-    private static class URC extends UrlRewriterContainer{
-
-        private final String rules;
-
-        URC(final String rules){
-            super();
-            this.rules = rules;
-        }
-
-        protected InputStream getInputStream(){
-            return new ByteArrayInputStream(rules.getBytes());
-        }
-    }
-
 }
\ No newline at end of file

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to