You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ho...@apache.org on 2009/07/10 21:37:31 UTC

svn commit: r793088 - in /lucene/solr/trunk/src: java/org/apache/solr/core/RequestHandlers.java java/org/apache/solr/core/SolrCore.java webapp/web/admin/index.jsp webapp/web/admin/replication/header.jsp

Author: hossman
Date: Fri Jul 10 19:37:30 2009
New Revision: 793088

URL: http://svn.apache.org/viewvc?rev=793088&view=rev
Log:
followup to SOLR-1255 ... previous commit caused compilation errors in test cases, this commit alters the methods added to SolrCore/RequestHandlers both to fix the compilation error and be more generally useful beyond just SOLR-1255

Modified:
    lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java
    lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
    lucene/solr/trunk/src/webapp/web/admin/index.jsp
    lucene/solr/trunk/src/webapp/web/admin/replication/header.jsp

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java?rev=793088&r1=793087&r2=793088&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java Fri Jul 10 19:37:30 2009
@@ -74,11 +74,16 @@
     return handlers.get(normalize(handlerName));
   }
 
-  public SolrRequestHandler get(Class clazz) {
-    for (SolrRequestHandler requestHandler : handlers.values()) {
-      if(requestHandler.getClass() == clazz) return requestHandler;
+  /**
+   * @return a Map of all registered handlers of the specified type.
+   */
+  public Map<String,SolrRequestHandler> getAll(Class clazz) {
+    Map<String,SolrRequestHandler> result 
+      = new HashMap<String,SolrRequestHandler>(7);
+    for (Map.Entry<String,SolrRequestHandler> e : handlers.entrySet()) {
+      if(clazz.isInstance(e.getValue())) result.put(e.getKey(), e.getValue());
     }
-    return null;
+    return result;
   }
 
   /**

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java?rev=793088&r1=793087&r2=793088&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java Fri Jul 10 19:37:30 2009
@@ -768,8 +768,11 @@
     return reqHandlers.get(handlerName);
   }
 
-  public SolrRequestHandler getRequestHandler(Class clazz) {
-    return reqHandlers.get(clazz);
+  /**
+   * Returns an unmodifieable Map containing the registered handlers of the specified type.
+   */
+  public Map<String,SolrRequestHandler> getRequestHandlers(Class clazz) {
+    return reqHandlers.getAll(clazz);
   }
   
   /**

Modified: lucene/solr/trunk/src/webapp/web/admin/index.jsp
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/webapp/web/admin/index.jsp?rev=793088&r1=793087&r2=793088&view=diff
==============================================================================
--- lucene/solr/trunk/src/webapp/web/admin/index.jsp (original)
+++ lucene/solr/trunk/src/webapp/web/admin/index.jsp Fri Jul 10 19:37:30 2009
@@ -29,7 +29,7 @@
 <%-- jsp:include page="header.jsp"/ --%>
 <%-- do a verbatim include so we can use the local vars --%>
 <%@include file="header.jsp" %>
-<%SolrRequestHandler replicationhandler = core.getRequestHandler(ReplicationHandler.class);%>
+<%boolean replicationhandler = !core.getRequestHandlers(ReplicationHandler.class).isEmpty();%>
 <br clear="all">
 <table>
 
@@ -45,7 +45,7 @@
     [<a href="file/?file=<%=core.getConfigResource()%>">Config</a>]
     <% } %>
     [<a href="analysis.jsp?highlight=on">Analysis</a>]
-    [<a href="schema.jsp">Schema Browser</a>] <%if(replicationhandler != null ){%>[<a href="replication/index.jsp">Replication</a>]<%}%>
+    [<a href="schema.jsp">Schema Browser</a>] <%if(replicationhandler){%>[<a href="replication/index.jsp">Replication</a>]<%}%>
     <br>
     [<a href="stats.jsp">Statistics</a>]
     [<a href="registry.jsp">Info</a>]

Modified: lucene/solr/trunk/src/webapp/web/admin/replication/header.jsp
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/webapp/web/admin/replication/header.jsp?rev=793088&r1=793087&r2=793088&view=diff
==============================================================================
--- lucene/solr/trunk/src/webapp/web/admin/replication/header.jsp (original)
+++ lucene/solr/trunk/src/webapp/web/admin/replication/header.jsp Fri Jul 10 19:37:30 2009
@@ -20,7 +20,8 @@
 				 org.apache.solr.common.util.SimpleOrderedMap,
 				 org.apache.solr.request.LocalSolrQueryRequest,
 				 org.apache.solr.request.SolrQueryResponse,
-				 org.apache.solr.request.SolrRequestHandler"%>
+				 org.apache.solr.request.SolrRequestHandler,
+                                 java.util.Map"%>
 <%@ page import="org.apache.solr.handler.ReplicationHandler" %>
 <%
 request.setCharacterEncoding("UTF-8");
@@ -55,11 +56,15 @@
 %>
 
 <%
-final SolrRequestHandler rh = core.getRequestHandler(ReplicationHandler.class);
-  if(rh == null){
+final Map<String,SolrRequestHandler> all = core.getRequestHandlers(ReplicationHandler.class);
+  if(all.isEmpty()){
     response.sendError( 404, "No ReplicationHandler registered" );
     return;
   }
+
+// :HACK: we should be more deterministic if multiple instances
+final SolrRequestHandler rh = all.values().iterator().next();
+
 NamedList namedlist = executeCommand("details",core,rh);
 NamedList detailsMap = (NamedList)namedlist.get("details");
 if(detailsMap != null)