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 ry...@apache.org on 2008/08/09 04:50:16 UTC

svn commit: r684172 - in /lucene/solr/trunk/src: java/org/apache/solr/core/SolrCore.java java/org/apache/solr/handler/admin/ShowFileRequestHandler.java test/org/apache/solr/core/TestConfig.java

Author: ryan
Date: Fri Aug  8 19:50:15 2008
New Revision: 684172

URL: http://svn.apache.org/viewvc?rev=684172&view=rev
Log:
SOLR-493 -- fix /admin/file links for old config formats

Modified:
    lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
    lucene/solr/trunk/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
    lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java

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=684172&r1=684171&r2=684172&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 Aug  8 19:50:15 2008
@@ -29,6 +29,7 @@
 import org.apache.solr.common.util.DOMUtil;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.handler.admin.ShowFileRequestHandler;
 import org.apache.solr.handler.component.*;
 import org.apache.solr.highlight.DefaultSolrHighlighter;
 import org.apache.solr.highlight.SolrHighlighter;
@@ -430,6 +431,9 @@
     		  solrConfig.get("highlighting/@class", DefaultSolrHighlighter.class.getName())
       );
       highlighter.initalize( solrConfig );
+      
+      // Handle things that should eventually go away
+      initDeprecatedSupport();
 
       final CountDownLatch latch = new CountDownLatch(1);
 
@@ -1319,7 +1323,47 @@
   public ValueSourceParser getValueSourceParser(String parserName) {
     return valueSourceParsers.get(parserName);
   }
+  
+  /**
+   * Manage anything that should be taken care of in case configs change
+   */
+  private void initDeprecatedSupport()
+  {
+    // TODO -- this should be removed in deprecation release...
+    String gettable = solrConfig.get("admin/gettableFiles", null );
+    if( gettable != null ) {
+      log.warning( 
+          "solrconfig.xml uses deprecated <admin/gettableFiles>, Please "+
+          "update your config to use the ShowFileRequestHandler." );
+      if( getRequestHandler( "admin/file" ) == null ) {
+        NamedList<String> invariants = new NamedList<String>();
+        
+        // Hide everything...
+        Set<String> hide = new HashSet<String>();
+        File configdir = new File( solrConfig.getResourceLoader().getConfigDir() ); 
+        for( String file : configdir.list() ) {
+          hide.add( file.toUpperCase() );
+        }
+        
+        // except the "gettable" list
+        StringTokenizer st = new StringTokenizer( gettable );
+        while( st.hasMoreTokens() ) {
+          hide.remove( st.nextToken().toUpperCase() );
+        }
+        for( String s : hide ) {
+          invariants.add( ShowFileRequestHandler.HIDDEN, s );
+        }
+        
+        NamedList<Object> args = new NamedList<Object>();
+        args.add( "invariants", invariants );
+        ShowFileRequestHandler handler = new ShowFileRequestHandler();
+        handler.init( args );
+        reqHandlers.register("admin/file", handler);
 
+        log.warning( "adding ShowFileRequestHandler with hidden files: "+hide );
+      }
+    }
+  } 
 
   public CoreDescriptor getCoreDescriptor() {
     return coreDescriptor;

Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java?rev=684172&r1=684171&r2=684172&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java Fri Aug  8 19:50:15 2008
@@ -111,6 +111,11 @@
     }
   }
   
+  public Set<String> getHiddenFiles()
+  {
+    return hiddenFiles;
+  }
+  
   @Override
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws IOException 
   {

Modified: lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java?rev=684172&r1=684171&r2=684172&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java (original)
+++ lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java Fri Aug  8 19:50:15 2008
@@ -17,6 +17,7 @@
 
 package org.apache.solr.core;
 
+import org.apache.solr.handler.admin.ShowFileRequestHandler;
 import org.apache.solr.util.AbstractSolrTestCase;
 import org.apache.solr.update.SolrIndexConfig;
 import org.w3c.dom.Node;
@@ -62,4 +63,17 @@
     boolean luceneAutoCommit = solrConfig.getBool("indexDefaults/luceneAutoCommit");
     assertTrue(luceneAutoCommit + " does not equal: " + false, luceneAutoCommit == false);
   }
+
+  // sometime if the config referes to old things, it must be replaced with new stuff
+  public void testAutomaticDeprecationSupport()
+  {
+    // make sure the "admin/file" handler is registered
+    ShowFileRequestHandler handler = (ShowFileRequestHandler) h.getCore().getRequestHandler( "admin/file" );
+    assertTrue( "file handler should have been automatically registered", handler!=null );
+
+    //System.out.println( handler.getHiddenFiles() );
+    // should not contain: <gettableFiles>solrconfig.xml scheam.xml admin-extra.html</gettableFiles>
+    assertFalse( handler.getHiddenFiles().contains( "scheam.xml".toUpperCase() ) );
+    assertTrue( handler.getHiddenFiles().contains( "PROTWORDS.TXT" ) );
+  }
 }
\ No newline at end of file