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