You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2013/12/12 21:35:38 UTC
svn commit: r1550514 - in /lucene/dev/branches/branch_4x: ./ solr/
solr/core/ solr/core/src/java/org/apache/solr/client/solrj/embedded/
solr/test-framework/ solr/test-framework/src/java/org/apache/solr/
solr/test-framework/src/java/org/apache/solr/cloud/
Author: markrmiller
Date: Thu Dec 12 20:35:37 2013
New Revision: 1550514
URL: http://svn.apache.org/r1550514
Log:
SOLR-5548: Give DistributedSearchTestCase / JettySolrRunner the ability to specify extra filters.
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
lucene/dev/branches/branch_4x/solr/test-framework/ (props changed)
lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1550514&r1=1550513&r2=1550514&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Thu Dec 12 20:35:37 2013
@@ -205,6 +205,9 @@ Other Changes
* SOLR-5533: Improve out of the box support for running Solr on hdfs with
SolrCloud. (Mark Miller)
+* SOLR-5548: Give DistributedSearchTestCase / JettySolrRunner the ability to
+ specify extra filters. (Greg Chanan via Mark Miller)
+
================== 4.6.0 ==================
Versions of Major Components
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java?rev=1550514&r1=1550513&r2=1550514&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java Thu Dec 12 20:35:37 2013
@@ -93,6 +93,8 @@ public class JettySolrRunner {
/** Maps servlet holders (i.e. factories: class + init params) to path specs */
private SortedMap<ServletHolder,String> extraServlets = new TreeMap<ServletHolder,String>();
+ private SortedMap<Class,String> extraRequestFilters;
+ private LinkedList<FilterHolder> extraFilters;
private SSLConfig sslConfig;
@@ -167,16 +169,30 @@ public class JettySolrRunner {
public JettySolrRunner(String solrHome, String context, int port,
String solrConfigFilename, String schemaFileName, boolean stopAtShutdown,
SortedMap<ServletHolder,String> extraServlets) {
- if (null != extraServlets) { this.extraServlets.putAll(extraServlets); }
- this.init(solrHome, context, port, stopAtShutdown);
- this.solrConfigFilename = solrConfigFilename;
- this.schemaFilename = schemaFileName;
+ this (solrHome, context, port, solrConfigFilename, schemaFileName,
+ stopAtShutdown, extraServlets, null, null);
}
public JettySolrRunner(String solrHome, String context, int port,
String solrConfigFilename, String schemaFileName, boolean stopAtShutdown,
SortedMap<ServletHolder,String> extraServlets, SSLConfig sslConfig) {
+ this (solrHome, context, port, solrConfigFilename, schemaFileName,
+ stopAtShutdown, extraServlets, sslConfig, null);
+ }
+
+ /**
+ * Constructor taking an ordered list of additional (filter holder -> path spec) mappings.
+ * Filters are placed after the DebugFilter but before the SolrDispatchFilter.
+ */
+ public JettySolrRunner(String solrHome, String context, int port,
+ String solrConfigFilename, String schemaFileName, boolean stopAtShutdown,
+ SortedMap<ServletHolder,String> extraServlets, SSLConfig sslConfig,
+ SortedMap<Class,String> extraRequestFilters) {
if (null != extraServlets) { this.extraServlets.putAll(extraServlets); }
+ if (null != extraRequestFilters) {
+ this.extraRequestFilters = new TreeMap<Class,String>(extraRequestFilters.comparator());
+ this.extraRequestFilters.putAll(extraRequestFilters);
+ }
this.init(solrHome, context, port, stopAtShutdown);
this.solrConfigFilename = solrConfigFilename;
this.schemaFilename = schemaFileName;
@@ -309,6 +325,13 @@ public class JettySolrRunner {
// SolrDispatchFilter filter = new SolrDispatchFilter();
// FilterHolder fh = new FilterHolder(filter);
debugFilter = root.addFilter(DebugFilter.class, "*", EnumSet.of(DispatcherType.REQUEST) );
+ if (extraRequestFilters != null) {
+ extraFilters = new LinkedList<FilterHolder>();
+ for (Class filterClass : extraRequestFilters.keySet()) {
+ extraFilters.add(root.addFilter(filterClass, extraRequestFilters.get(filterClass),
+ EnumSet.of(DispatcherType.REQUEST)));
+ }
+ }
dispatchFilter = root.addFilter(SolrDispatchFilter.class, "*", EnumSet.of(DispatcherType.REQUEST) );
for (ServletHolder servletHolder : extraServlets.keySet()) {
String pathSpec = extraServlets.get(servletHolder);
@@ -445,6 +468,11 @@ public class JettySolrRunner {
//server.destroy();
if (server.getState().equals(Server.FAILED)) {
filter.destroy();
+ if (extraFilters != null) {
+ for (FilterHolder f : extraFilters) {
+ f.getFilter().destroy();
+ }
+ }
}
server.join();
Modified: lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java?rev=1550514&r1=1550513&r2=1550514&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java (original)
+++ lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java Thu Dec 12 20:35:37 2013
@@ -368,7 +368,8 @@ public abstract class BaseDistributedSea
boolean stopAtShutdown = true;
JettySolrRunner jetty = new JettySolrRunner
- (solrHome.getAbsolutePath(), context, 0, solrConfigOverride, schemaOverride, stopAtShutdown, getExtraServlets());
+ (solrHome.getAbsolutePath(), context, 0, solrConfigOverride, schemaOverride, stopAtShutdown,
+ getExtraServlets(), null, getExtraRequestFilters());
jetty.setShards(shardList);
jetty.setDataDir(dataDir);
if (explicitCoreNodeName) {
@@ -383,7 +384,12 @@ public abstract class BaseDistributedSea
public SortedMap<ServletHolder,String> getExtraServlets() {
return null;
}
-
+
+ /** Override this method to insert extra filters into the JettySolrRunners that are created using createJetty() */
+ public SortedMap<Class,String> getExtraRequestFilters() {
+ return null;
+ }
+
protected SolrServer createNewSolrServer(int port) {
try {
// setup the server...
Modified: lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java?rev=1550514&r1=1550513&r2=1550514&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java (original)
+++ lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java Thu Dec 12 20:35:37 2013
@@ -453,7 +453,7 @@ public abstract class AbstractFullDistri
String solrConfigOverride) throws Exception {
JettySolrRunner jetty = new JettySolrRunner(getSolrHome(), context, 0,
- solrConfigOverride, null, false, getExtraServlets());
+ solrConfigOverride, null, false, getExtraServlets(), null, getExtraRequestFilters());
jetty.setShards(shardList);
jetty.setDataDir(getDataDir(dataDir));
jetty.start();
@@ -467,7 +467,7 @@ public abstract class AbstractFullDistri
solrHome = getRelativeSolrHomePath(solrHome);
}
- JettySolrRunner jetty = new JettySolrRunner(solrHome.getPath(), context, 0, solrConfigOverride, schemaOverride, false, getExtraServlets());
+ JettySolrRunner jetty = new JettySolrRunner(solrHome.getPath(), context, 0, solrConfigOverride, schemaOverride, false, getExtraServlets(), null, getExtraRequestFilters());
jetty.setShards(shardList);
jetty.setDataDir(getDataDir(dataDir));
jetty.start();