You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ps...@apache.org on 2007/10/16 05:44:53 UTC

svn commit: r585021 - in /labs/pinpoint/trunk: pinpoint-search/ pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/ pinpoint-web/ pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/ pinpoint-web/src/main/resources/org/ pinpoint-we...

Author: psmith
Date: Mon Oct 15 20:44:52 2007
New Revision: 585021

URL: http://svn.apache.org/viewvc?rev=585021&view=rev
Log:
Add ehcache to the list of dependencies, and allow PinpointSearcher instances to be managed
by it's cacheloader mechanism with an auto-closing listener class. This will also be used
for search results soon.

Added beginnings of a Navigation controller mechanism that will allow next/previous/first/last
etc control mechanisms to a search results object.  It's just currently a shell at the moment.

Added:
    labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCache.java
    labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCacheEntryFactory.java
    labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchResultsNavigator.java
    labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearcherEhCacheRegionFactory.java
    labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/
    labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/
    labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/logging/
    labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/logging/pinpoint/
    labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/logging/pinpoint/web/
    labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/logging/pinpoint/web/pinpoint-web-ehcache.xml
Modified:
    labs/pinpoint/trunk/pinpoint-search/pom.xml
    labs/pinpoint/trunk/pinpoint-web/pom.xml
    labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchContextController.java
    labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/dispatcher-servlet.xml
    labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/jsp/results.jsp
    labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/web.xml

Modified: labs/pinpoint/trunk/pinpoint-search/pom.xml
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-search/pom.xml?rev=585021&r1=585020&r2=585021&view=diff
==============================================================================
--- labs/pinpoint/trunk/pinpoint-search/pom.xml (original)
+++ labs/pinpoint/trunk/pinpoint-search/pom.xml Mon Oct 15 20:44:52 2007
@@ -46,9 +46,14 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-    <groupId>joda-time</groupId>
-    <artifactId>joda-time</artifactId>
-    <version>1.4</version>
+    	<groupId>joda-time</groupId>
+    	<artifactId>joda-time</artifactId>
+    	<version>1.4</version>
+	</dependency>
+	<dependency>
+	    <groupId>net.sf.ehcache</groupId>
+	    <artifactId>ehcache</artifactId>
+	    <version>1.4.0-beta</version>
 	</dependency>
   </dependencies>
 </project>

Added: labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCache.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCache.java?rev=585021&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCache.java (added)
+++ labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCache.java Mon Oct 15 20:44:52 2007
@@ -0,0 +1,51 @@
+package org.apache.logging.pinpoint.search;
+
+import java.io.Serializable;
+
+import net.sf.ehcache.Ehcache;
+import net.sf.ehcache.Element;
+
+import org.apache.log4j.Logger;
+import org.apache.logging.pinpoint.PinpointContext;
+import org.apache.logging.pinpoint.utils.PinpointUtils;
+
+public class PinpointSearcherCache {
+
+    private static Logger LOG = PinpointUtils
+            .getLogger(PinpointSearcherCache.class);
+
+    private Ehcache cache;
+
+    public final Ehcache getCache() {
+        return cache;
+    }
+
+    public final void setCache(Ehcache cache) {
+        this.cache = cache;
+    }
+
+    /**
+     * Returns a valid and warmed up PinpointSearcher object from the cache and
+     * keeps it alive according to configured policies.
+     * 
+     * @param ctx
+     * @return
+     */
+    public PinpointSearcher getSearcher(PinpointContext context) {
+        PinpointSearcher pinpointSearcher;
+
+        Element element = cache.get(createKey(context));
+        if (element == null) {
+            throw new RuntimeException(
+                    "Failed to retrieve the PinpointSearcher for context " +
+                            context.getContextName());
+        } else {
+            pinpointSearcher = (PinpointSearcher) element.getObjectValue();
+        }
+        return pinpointSearcher;
+    }
+
+    private Serializable createKey(PinpointContext context) {
+        return context.getContextName();
+    }
+}

Added: labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCacheEntryFactory.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCacheEntryFactory.java?rev=585021&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCacheEntryFactory.java (added)
+++ labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearcherCacheEntryFactory.java Mon Oct 15 20:44:52 2007
@@ -0,0 +1,47 @@
+package org.apache.logging.pinpoint.search;
+
+import java.io.IOException;
+
+import org.apache.logging.pinpoint.PinpointContext;
+import org.apache.logging.pinpoint.PinpointHome;
+import org.apache.logging.pinpoint.store.EventStore;
+import org.apache.logging.pinpoint.store.EventStoreFactory;
+import org.apache.logging.pinpoint.store.SimpleEventStoreFactory;
+
+import net.sf.ehcache.constructs.blocking.CacheEntryFactory;
+
+public class PinpointSearcherCacheEntryFactory implements CacheEntryFactory {
+
+    private EventStoreFactory eventStoreFactory = new SimpleEventStoreFactory();
+    private PinpointHome pinpointHome;
+
+    public final EventStoreFactory getEventStoreFactory() {
+        return eventStoreFactory;
+    }
+
+    public final void setEventStoreFactory(EventStoreFactory eventStoreFactory) {
+        this.eventStoreFactory = eventStoreFactory;
+    }
+
+    public final PinpointHome getPinpointHome() {
+        return pinpointHome;
+    }
+
+    public final void setPinpointHome(PinpointHome pinpointHome) {
+        this.pinpointHome = pinpointHome;
+    }
+
+    public Object createEntry(Object key) throws Exception {
+        PinpointContext context = pinpointHome.createContext(key.toString());
+        EventStore eventStore = eventStoreFactory.createEventStore(context);
+        try {
+            PinpointSearcher pinpointSearcher = new PinpointSearcher(context,
+                    eventStore);
+            return pinpointSearcher;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to create the PinpointSearcher",
+                    e);
+        }
+    }
+
+}

Modified: labs/pinpoint/trunk/pinpoint-web/pom.xml
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-web/pom.xml?rev=585021&r1=585020&r2=585021&view=diff
==============================================================================
--- labs/pinpoint/trunk/pinpoint-web/pom.xml (original)
+++ labs/pinpoint/trunk/pinpoint-web/pom.xml Mon Oct 15 20:44:52 2007
@@ -56,5 +56,23 @@
       <artifactId>org.mortbay.jetty</artifactId>
       <version>5.1.G1</version>
     </dependency>
+    <dependency>
+      <groupId>commons-collections</groupId>
+      <artifactId>commons-collections</artifactId>
+      <version>3.2</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.2</version>
+    </dependency>
+
+<!-- I don't get why I need this here to debug the jetty context in eclipse, but it doesn't work without it, even though pinpoint-search project depends on ehcache... -->
+
+	<dependency>
+	    <groupId>net.sf.ehcache</groupId>
+	    <artifactId>ehcache</artifactId>
+	    <version>1.4.0-beta</version>
+	</dependency>
   </dependencies>
 </project>

Modified: labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchContextController.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchContextController.java?rev=585021&r1=585020&r2=585021&view=diff
==============================================================================
--- labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchContextController.java (original)
+++ labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchContextController.java Mon Oct 15 20:44:52 2007
@@ -9,11 +9,11 @@
 import org.apache.logging.pinpoint.PinpointContext;
 import org.apache.logging.pinpoint.PinpointHome;
 import org.apache.logging.pinpoint.search.PinpointSearchModel;
+import org.apache.logging.pinpoint.search.PinpointSearchQueryParser;
 import org.apache.logging.pinpoint.search.PinpointSearchResults;
 import org.apache.logging.pinpoint.search.PinpointSearcher;
-import org.apache.logging.pinpoint.store.EventStore;
-import org.apache.logging.pinpoint.store.SimpleEventStore;
-import org.apache.lucene.queryParser.QueryParser;
+import org.apache.logging.pinpoint.search.PinpointSearcherCache;
+import org.apache.lucene.search.Query;
 import org.springframework.validation.Errors;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.SimpleFormController;
@@ -22,12 +22,22 @@
 
     private PinpointHome pinpointHome;
 
-    private QueryParser queryParser;
+    private PinpointSearchQueryParser queryParser;
+
+    private PinpointSearcherCache searcherCache;
+
+    public final PinpointSearchQueryParser getQueryParser() {
+        return queryParser;
+    }
+
+    public final void setQueryParser(PinpointSearchQueryParser queryParser) {
+        this.queryParser = queryParser;
+    }
 
     @Override
     protected Map referenceData(HttpServletRequest request, Object command,
             Errors errors) throws Exception {
-        Map map = new HashMap();
+        Map<String, Object> map = new HashMap<String, Object>();
         List<PinpointContext> ctxs = pinpointHome.listContexts();
 
         map.put("pinpointContexts", ctxs);
@@ -42,6 +52,14 @@
         this.pinpointHome = pinpointHome;
     }
 
+    public final PinpointSearcherCache getSearcherCache() {
+        return searcherCache;
+    }
+
+    public final void setSearcherCache(PinpointSearcherCache searcherCache) {
+        this.searcherCache = searcherCache;
+    }
+
     @Override
     protected ModelAndView onSubmit(Object command) throws Exception {
         ModelAndView mav = new ModelAndView(getSuccessView());
@@ -49,24 +67,20 @@
         PinpointSearchModel searchModel = (PinpointSearchModel) command;
 
         PinpointContext context = searchModel.getContext();
-        EventStore eventStore = new SimpleEventStore(context);
-        PinpointSearcher pinpointSearcher = new PinpointSearcher(context,
-                eventStore);
+
+        Query query = queryParser.parse(searchModel);
+
+        PinpointSearcher pinpointSearcher = getSearcherCache().getSearcher(
+                context);
 
         // TODO this should go into the session for subsequent views
-        PinpointSearchResults searchResults = pinpointSearcher
-                .search(queryParser.parse(searchModel.getSearchQuery()));
+        PinpointSearchResults searchResults = pinpointSearcher.search(query);
+
+        // TODO where does the results sit? In Session or in a cache by context
+        // and query?
 
         mav.addObject("searchResults", searchResults);
         return mav;
-    }
-
-    public final QueryParser getQueryParser() {
-        return queryParser;
-    }
-
-    public final void setQueryParser(QueryParser queryParser) {
-        this.queryParser = queryParser;
     }
 
 }

Added: labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchResultsNavigator.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchResultsNavigator.java?rev=585021&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchResultsNavigator.java (added)
+++ labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearchResultsNavigator.java Mon Oct 15 20:44:52 2007
@@ -0,0 +1,16 @@
+package org.apache.logging.pinpoint.web;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.web.servlet.ModelAndView;
+
+public class PinpointSearchResultsNavigator {
+
+    public ModelAndView next(HttpServletRequest req, HttpServletResponse res) {
+        // TODO configure results view name?
+        ModelAndView mav = new ModelAndView("results");
+
+        return mav;
+    }
+}

Added: labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearcherEhCacheRegionFactory.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearcherEhCacheRegionFactory.java?rev=585021&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearcherEhCacheRegionFactory.java (added)
+++ labs/pinpoint/trunk/pinpoint-web/src/main/java/org/apache/logging/pinpoint/web/PinpointSearcherEhCacheRegionFactory.java Mon Oct 15 20:44:52 2007
@@ -0,0 +1,133 @@
+package org.apache.logging.pinpoint.web;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheException;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.Ehcache;
+import net.sf.ehcache.Element;
+import net.sf.ehcache.constructs.blocking.CacheEntryFactory;
+import net.sf.ehcache.constructs.blocking.SelfPopulatingCache;
+import net.sf.ehcache.event.CacheEventListener;
+import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
+
+import org.apache.logging.pinpoint.search.PinpointSearcher;
+import org.springframework.beans.factory.FactoryBean;
+import org.springframework.beans.factory.InitializingBean;
+
+/**
+ * A Factory-bean that knows how to create an EHCache region that understands
+ * what to do with PinpointSearcher instances on expiry or removal (it closes
+ * them nicely).
+ * 
+ * This closs uses some sane defaults that make sense for the configuration of
+ * the cache.
+ * 
+ * @author paulsmith
+ * 
+ */
+public class PinpointSearcherEhCacheRegionFactory implements FactoryBean,
+        InitializingBean {
+
+    private CacheManager cacheManager;
+
+    private final class ClosingSearcherCacheEventListener implements
+            CacheEventListener {
+
+        public Object clone() {
+            throw new UnsupportedOperationException("clone() not supported");
+        }
+
+        public void dispose() {
+        }
+
+        public void notifyElementEvicted(Ehcache arg0, Element arg1) {
+
+        }
+
+        public void notifyElementExpired(Ehcache arg0, Element element) {
+            closeSearcher(element);
+
+        }
+
+        public void notifyElementPut(Ehcache arg0, Element arg1)
+                throws CacheException {
+        }
+
+        public void notifyElementRemoved(Ehcache arg0, Element element)
+                throws CacheException {
+            closeSearcher(element);
+
+        }
+
+        public void notifyElementUpdated(Ehcache arg0, Element arg1)
+                throws CacheException {
+
+        }
+
+        public void notifyRemoveAll(Ehcache arg0) {
+
+        }
+    }
+
+    private CacheEntryFactory cacheEntryFactory;
+    private int maxElementsInMemory = 5;
+    private MemoryStoreEvictionPolicy memoryStoreEvictionPolicy = MemoryStoreEvictionPolicy.LRU;
+    private boolean overflowToDisk = false;
+    private String diskStorePath = "";
+    private boolean eternal = false;
+    private long timeToLive = 30;
+    private long timeToIdle = 0;
+    private boolean diskPersistent = false;
+    private long diskExpiryThreadIntervalSeconds = 5;
+    private SelfPopulatingCache selfPopulatingCache;
+
+    public Object getObject() throws Exception {
+        return this.selfPopulatingCache;
+    }
+
+    public void afterPropertiesSet() {
+        Cache cache = new Cache("pinpoint.searcher", this.maxElementsInMemory,
+                this.memoryStoreEvictionPolicy, this.overflowToDisk,
+                this.diskStorePath, this.eternal, this.timeToLive,
+                this.timeToIdle, this.diskPersistent,
+                this.diskExpiryThreadIntervalSeconds, null);
+        this.selfPopulatingCache = new SelfPopulatingCache(cache,
+                cacheEntryFactory);
+        selfPopulatingCache.getCacheEventNotificationService()
+                .registerListener(new ClosingSearcherCacheEventListener());
+
+        cacheManager.addCache(selfPopulatingCache);
+    }
+
+    private void closeSearcher(Element element) {
+        PinpointSearcher searcher = (PinpointSearcher) element.getObjectValue();
+        searcher.close();
+
+    }
+
+    public Class getObjectType() {
+        return (this.selfPopulatingCache != null ? this.selfPopulatingCache
+                .getClass() : Ehcache.class);
+    }
+
+    public boolean isSingleton() {
+        return false;
+    }
+
+    public final CacheEntryFactory getCacheEntryFactory() {
+        return cacheEntryFactory;
+    }
+
+    public final void setCacheEntryFactory(CacheEntryFactory cacheEntryFactory) {
+        this.cacheEntryFactory = cacheEntryFactory;
+    }
+
+    public final CacheManager getCacheManager() {
+        return cacheManager;
+    }
+
+    public final void setCacheManager(CacheManager cacheManager) {
+        this.cacheManager = cacheManager;
+    }
+
+}

Added: labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/logging/pinpoint/web/pinpoint-web-ehcache.xml
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/logging/pinpoint/web/pinpoint-web-ehcache.xml?rev=585021&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/logging/pinpoint/web/pinpoint-web-ehcache.xml (added)
+++ labs/pinpoint/trunk/pinpoint-web/src/main/resources/org/apache/logging/pinpoint/web/pinpoint-web-ehcache.xml Mon Oct 15 20:44:52 2007
@@ -0,0 +1,53 @@
+
+<ehcache>
+
+    <!-- Sets the path to the directory where cache .data files are created.
+
+         If the path is a Java System Property it is replaced by
+         its value in the running VM.
+
+         The following properties are translated:
+         user.home - User's home directory
+         user.dir - User's current working directory
+         java.io.tmpdir - Default temp file path -->
+    <diskStore path="java.io.tmpdir"/>
+
+
+    <!--Default Cache configuration. These will applied to caches programmatically created through
+        the CacheManager.
+
+        The following attributes are required for defaultCache:
+
+        maxInMemory       - Sets the maximum number of objects that will be created in memory
+        eternal           - Sets whether elements are eternal. If eternal,  timeouts are ignored and the element
+                            is never expired.
+        timeToIdleSeconds - Sets the time to idle for an element before it expires.
+                            i.e. The maximum amount of time between accesses before an element expires
+                            Is only used if the element is not eternal.
+                            Optional attribute. A value of 0 means that an Element can idle for infinity
+        timeToLiveSeconds - Sets the time to live for an element before it expires.
+                            i.e. The maximum time between creation time and when an element expires.
+                            Is only used if the element is not eternal.
+        overflowToDisk    - Sets whether elements can overflow to disk when the in-memory cache
+                            has reached the maxInMemory limit.
+
+        -->
+
+    <defaultCache 
+        maxElementsInMemory="300"
+        eternal="false"
+        timeToIdleSeconds="10"
+        timeToLiveSeconds="0"
+        overflowToDisk="false"
+        diskExpiryThreadIntervalSeconds="5"
+        />
+        
+        <cache name="pinpoint.searcher" 
+        maxElementsInMemory="300"
+        eternal="false"
+        timeToIdleSeconds="10"
+        timeToLiveSeconds="0"
+        overflowToDisk="false"
+        diskExpiryThreadIntervalSeconds="5"
+        />
+</ehcache>

Modified: labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/dispatcher-servlet.xml
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/dispatcher-servlet.xml?rev=585021&r1=585020&r2=585021&view=diff
==============================================================================
--- labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/dispatcher-servlet.xml (original)
+++ labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/dispatcher-servlet.xml Mon Oct 15 20:44:52 2007
@@ -28,6 +28,8 @@
 		<property name="pinpointHome" ref="pinpointHome" />
 		<property name="propertyEditorRegistrar" ref="pinpointContextEditorRegistrar" />
 		
+		<property name="searcherCache" ref="pinpointSearcherCache" />
+		
 		<property name="queryParser" ref="queryParser" /> 
 	</bean> 
 	
@@ -36,6 +38,18 @@
 		<property name="prefix" value="/WEB-INF/jsp/"/> 
 		<property name="suffix" value=".jsp"/> 
 	</bean> 
+	
+	<bean name="/resultNavigator.do" class="org.springframework.web.servlet.mvc.multiaction.MultiActionController">
+		<property name="methodNameResolver">
+			<bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> 
+				<property name="paramName" value="action"/> 
+			</bean>
+		</property>
+		<property name="delegate">
+			<bean class="org.apache.logging.pinpoint.web.PinpointSearchResultsNavigator" />
+		</property> 
+		
+	</bean>
 
     <bean id="pinpointContextEditor" class="org.apache.logging.pinpoint.PinpointContextEditor">
     	<property name="pinpointHome" ref="pinpointHome" />
@@ -47,9 +61,43 @@
 	
 	
 	<bean id="analyzer" class="org.apache.lucene.analysis.standard.StandardAnalyzer" />
-	<bean id="queryParser" class="org.apache.lucene.queryParser.QueryParser">
-		<constructor-arg value="message" />
-		<constructor-arg ref="analyzer" />
+
+	<bean id="queryParser" class="org.apache.logging.pinpoint.search.DefaultPinpointSearchQueryParser">
+		<property name="analyzer"  ref="analyzer" />
+	</bean>
+	
+	<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
+<!--  		<property name="configLocation">
+    		<value>classpath:org/apache/logging/pinpoint/web/pinpoint-web-ehcache.xml</value>
+  		</property>
+  		-->
+
+	</bean>
+	
+	
+	<bean id="searcherCacheRegion" class="org.apache.logging.pinpoint.web.PinpointSearcherEhCacheRegionFactory">
+		<property name="cacheEntryFactory" ref="pinpointSearcherCacheEntryFactory" />
+		<property name="cacheManager" ref="cacheManager"/>
+	</bean>
+	
+<!--	<bean id="searcherCacheRegion" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
+  		<property name="cacheManager" ref="cacheManager"/>
+  		<property name="cacheName">
+    		<value>pinpoint.searcher</value>
+  		</property>
+  		<property name="timeToIdle" value="5" />
+  		<property name="timeToLive" value="0" />
+  		<property name="overflowToDisk" value="false" />
+  		<property name="diskExpiryThreadIntervalSeconds" value="5" />
+  		<property name="cacheEntryFactory" ref="pinpointSearcherCacheEntryFactory" />
+	</bean> -->
+
+	<bean id="pinpointSearcherCacheEntryFactory" class="org.apache.logging.pinpoint.search.PinpointSearcherCacheEntryFactory">
+		<property name="pinpointHome" ref="pinpointHome" />
+	</bean>
+	
+	<bean id="pinpointSearcherCache" class="org.apache.logging.pinpoint.search.PinpointSearcherCache">
+		<property name="cache" ref="searcherCacheRegion" />
 	</bean>
 	
 </beans>

Modified: labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/jsp/results.jsp
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/jsp/results.jsp?rev=585021&r1=585020&r2=585021&view=diff
==============================================================================
--- labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/jsp/results.jsp (original)
+++ labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/jsp/results.jsp Mon Oct 15 20:44:52 2007
@@ -1 +1,6 @@
-results
\ No newline at end of file
+<%@ page import="org.apache.commons.collections.*"%>
+<%@ page import="org.apache.commons.lang.*"%>
+<!--<%=StringUtils.join(IteratorUtils.asIterator(request.getAttributeNames()), ",") %>-->
+<%=request.getAttribute("searchResults")%>
+
+<a href="resultNavigator.do?action=next">next</a>
\ No newline at end of file

Modified: labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/web.xml?rev=585021&r1=585020&r2=585021&view=diff
==============================================================================
--- labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/web.xml (original)
+++ labs/pinpoint/trunk/pinpoint-web/src/main/webapp/WEB-INF/web.xml Mon Oct 15 20:44:52 2007
@@ -5,10 +5,17 @@
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
   </servlet>
+  
   <servlet-mapping>
     <servlet-name>dispatcher</servlet-name>
     <url-pattern>*.form</url-pattern>
   </servlet-mapping>
+  
+  <servlet-mapping>
+    <servlet-name>dispatcher</servlet-name>
+    <url-pattern>*.do</url-pattern>
+  </servlet-mapping>
+  
   <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>



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