Author: sshafroi
Date: 2008-08-12 12:41:35 +0200 (Tue, 12 Aug 2008)
New Revision: 6759

Modified:
   
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/FastQueryMatchingEvaluatorFactory.java
   
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/JepEvaluatorFactory.java
   
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
   trunk/site-spi/src/main/java/no/sesat/search/site/Site.java
Log:
Keep one SiteContext for each site, and use this instead of creating a new one 
each time it is needed.




Modified: 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/FastQueryMatchingEvaluatorFactory.java
===================================================================
--- 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/FastQueryMatchingEvaluatorFactory.java
       2008-08-12 07:11:45 UTC (rev 6758)
+++ 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/FastQueryMatchingEvaluatorFactory.java
       2008-08-12 10:41:35 UTC (rev 6759)
@@ -78,11 +78,7 @@
 
             result = instanceOf(ContextWrapper.wrap(
                     Context.class,
-                    new SiteContext(){
-                        public Site getSite(){
-                            return cxt.getSite().getParent();
-                        }
-                    },
+                    cxt.getSite().getParent().getSiteContext(),
                     cxt
                 )).getEvaluator(token);
         }

Modified: 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/JepEvaluatorFactory.java
===================================================================
--- 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/JepEvaluatorFactory.java
     2008-08-12 07:11:45 UTC (rev 6758)
+++ 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/JepEvaluatorFactory.java
     2008-08-12 10:41:35 UTC (rev 6759)
@@ -121,7 +121,6 @@
     }
 
     public TokenEvaluator getEvaluator(final TokenPredicate token) throws 
EvaluationException {
-
         final Context cxt = getContext();
 
         TokenEvaluator result = jepEvaluators.get(token);
@@ -129,11 +128,7 @@
 
             result = instanceOf(ContextWrapper.wrap(
                     Context.class,
-                    new SiteContext(){
-                        public Site getSite(){
-                            return cxt.getSite().getParent();
-                        }
-                    },
+                    cxt.getSite().getParent().getSiteContext(),
                     cxt
                 )).getEvaluator(token);
         }

Modified: 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
===================================================================
--- 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
  2008-08-12 07:11:45 UTC (rev 6758)
+++ 
trunk/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
  2008-08-12 10:41:35 UTC (rev 6759)
@@ -63,7 +63,6 @@
             throws SiteKeyedFactoryInstantiationException {
 
         super(cxt);
-
         try{
             init();
 
@@ -152,11 +151,7 @@
 
             result = instanceOf(ContextWrapper.wrap(
                     Context.class,
-                    new SiteContext(){
-                        public Site getSite(){
-                            return cxt.getSite().getParent();
-                        }
-                    },
+                    cxt.getSite().getParent().getSiteContext(),
                     cxt
                 )).getEvaluator(token);
         }

Modified: trunk/site-spi/src/main/java/no/sesat/search/site/Site.java
===================================================================
--- trunk/site-spi/src/main/java/no/sesat/search/site/Site.java 2008-08-12 
07:11:45 UTC (rev 6758)
+++ trunk/site-spi/src/main/java/no/sesat/search/site/Site.java 2008-08-12 
10:41:35 UTC (rev 6759)
@@ -35,7 +35,6 @@
 
 import no.sesat.Interpreter;
 import no.sesat.Interpreter.Function;
-import no.sesat.search.site.config.ResourceLoadException;
 import org.apache.log4j.Logger;
 
 /** A Site object identifies a Skin + Locale pairing.
@@ -116,6 +115,8 @@
     */
     private final Site parent;
 
+    private transient final SiteContext siteContext;
+
     /** No-argument constructor for deserialization. */
     private Site() {
         siteName = null;
@@ -123,6 +124,13 @@
         locale = Locale.getDefault();
         uniqueName = null;
         parent = null;
+
+        final Site thisSite = this;
+        siteContext = new SiteContext() {
+            public Site getSite() {
+                return thisSite;
+            }
+        };
     }
 
     /** Creates a new instance of Site.
@@ -130,8 +138,6 @@
      * @throws IllegalArgumentException when there exists no skin matching the 
theSiteName argument.
      */
     private Site(final Context cxt, final String theSiteName, final Locale 
theLocale) {
-
-
         try{
             INSTANCES_LOCK.writeLock().lock();
 
@@ -147,14 +153,12 @@
             uniqueName = getUniqueName(siteName, locale);
 
             final Site thisSite = this;
-
-            final SiteContext siteContext = new SiteContext() {
+            siteContext = new SiteContext() {
                 public Site getSite() {
                     return thisSite;
                 }
             };
 
-
             final String parentSiteName;
             if(null != cxt){
                 // cxt.getParentSiteName(siteContext) is an expensive call due 
to resource load every call.
@@ -201,6 +205,14 @@
         }
     }
 
+    /**
+     * Get a SiteContext for this site.
+     *
+     * @return SiteContext for this site.
+     */
+    public SiteContext getSiteContext() {
+        return siteContext;
+    }
 
     /** the parent to this site.
      * @return site null if we are the DEFAULT site.

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

Reply via email to