Package org.apache.solr.embedded
Class JettySolrRunner
- java.lang.Object
-
- org.apache.solr.embedded.JettySolrRunner
-
- Direct Known Subclasses:
MiniSolrCloudCluster.JettySolrRunnerWithMetrics
public class JettySolrRunner extends Object
Run solr using jetty- Since:
- solr 1.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJettySolrRunner.DebugFilterstatic classJettySolrRunner.Servlet404This is a stupid hack to give jetty something to attach to
-
Constructor Summary
Constructors Constructor Description JettySolrRunner(String solrHome, String context, int port)Create a new JettySolrRunner.JettySolrRunner(String solrHome, Properties nodeProperties, JettyConfig config)Construct a JettySolrRunnerJettySolrRunner(String solrHome, Properties nodeProperties, JettyConfig config, boolean enableProxy)Construct a JettySolrRunnerJettySolrRunner(String solrHome, JettyConfig config)Construct a JettySolrRunner
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddumpCoresInfo(PrintStream pw)URLgetBaseUrl()Returns a base URL consisting of the protocol, host, and port for a Connector in use by the Jetty Server contained in this runner.URLgetBaseURLV2()org.apache.solr.core.CoreContainergetCoreContainer()JettySolrRunner.DebugFiltergetDebugFilter()intgetLocalPort()Returns the Local Port of the jetty Server.intgetLocalPort(boolean internalPort)Returns the Local Port of the jetty Server.StringgetNodeName()PropertiesgetNodeProperties()org.apache.solr.client.solrj.cloud.SocketProxygetProxy()URLgetProxyBaseUrl()Returns a base URL consisting of the protocol, host, and port for a Connector in use by the Jetty Server contained in this runner.org.apache.solr.servlet.SolrDispatchFiltergetSolrDispatchFilter()StringgetSolrHome()protected org.eclipse.jetty.server.handler.HandlerWrapperinjectJettyHandlers(org.eclipse.jetty.server.handler.HandlerWrapper chain)descendants may inject own handler chaining it to the given root and then returning that own onebooleanisRunning()booleanisStopped()static voidmain(String[] args)A main class that starts jetty+solr This is useful for debuggingorg.apache.solr.client.solrj.SolrClientnewClient()org.apache.solr.client.solrj.SolrClientnewClient(int connectionTimeoutMillis, int socketTimeoutMillis)voidoutputMetrics(File outputDirectory, String fileName)voidsetProxyPort(int proxyPort)Sets the port of a local socket proxy that sits infront of this server; if set then all client traffic will flow through the proxy, giving us the ability to simulate network partitions very easily.voidstart()Start the Jetty servervoidstart(boolean reusePort)Start the Jetty servervoidstop()Stop the Jetty server
-
-
-
Constructor Detail
-
JettySolrRunner
public JettySolrRunner(String solrHome, String context, int port)
Create a new JettySolrRunner.After construction, you must start the jetty with
start()- Parameters:
solrHome- the solr home directory to usecontext- the context to run inport- the port to run on
-
JettySolrRunner
public JettySolrRunner(String solrHome, JettyConfig config)
Construct a JettySolrRunnerAfter construction, you must start the jetty with
start()- Parameters:
solrHome- the base path to run fromconfig- the configuration
-
JettySolrRunner
public JettySolrRunner(String solrHome, Properties nodeProperties, JettyConfig config)
Construct a JettySolrRunnerAfter construction, you must start the jetty with
start()- Parameters:
solrHome- the solrHome to usenodeProperties- the container propertiesconfig- the configuration
-
JettySolrRunner
public JettySolrRunner(String solrHome, Properties nodeProperties, JettyConfig config, boolean enableProxy)
Construct a JettySolrRunnerAfter construction, you must start the jetty with
start()- Parameters:
solrHome- the solrHome to usenodeProperties- the container propertiesconfig- the configurationenableProxy- enables proxy feature to disable connections
-
-
Method Detail
-
injectJettyHandlers
protected org.eclipse.jetty.server.handler.HandlerWrapper injectJettyHandlers(org.eclipse.jetty.server.handler.HandlerWrapper chain)
descendants may inject own handler chaining it to the given root and then returning that own one
-
getSolrDispatchFilter
public org.apache.solr.servlet.SolrDispatchFilter getSolrDispatchFilter()
- Returns:
- the
SolrDispatchFilterfor this node
-
getCoreContainer
public org.apache.solr.core.CoreContainer getCoreContainer()
- Returns:
- the
CoreContainerfor this node
-
getNodeName
public String getNodeName()
-
isRunning
public boolean isRunning()
-
isStopped
public boolean isStopped()
-
start
public void start() throws ExceptionStart the Jetty serverIf the server has been started before, it will restart using the same port
- Throws:
Exception- if an error occurs on startup
-
start
public void start(boolean reusePort) throws ExceptionStart the Jetty server- Parameters:
reusePort- when true, will start up on the same port as used by any previous runs of this JettySolrRunner. If false, will use the port specified by the server's JettyConfig.- Throws:
Exception- if an error occurs on startup
-
stop
public void stop() throws ExceptionStop the Jetty server- Throws:
Exception- if an error occurs on shutdown
-
outputMetrics
public void outputMetrics(File outputDirectory, String fileName) throws IOException
- Throws:
IOException
-
dumpCoresInfo
public void dumpCoresInfo(PrintStream pw) throws IOException
- Throws:
IOException
-
getLocalPort
public int getLocalPort()
Returns the Local Port of the jetty Server.- Throws:
RuntimeException- if there is no Connector
-
getLocalPort
public int getLocalPort(boolean internalPort)
Returns the Local Port of the jetty Server.- Parameters:
internalPort- pass true to get the true jetty port rather than the proxy port if configured- Throws:
RuntimeException- if there is no Connector
-
setProxyPort
public void setProxyPort(int proxyPort)
Sets the port of a local socket proxy that sits infront of this server; if set then all client traffic will flow through the proxy, giving us the ability to simulate network partitions very easily.
-
getBaseUrl
public URL getBaseUrl()
Returns a base URL consisting of the protocol, host, and port for a Connector in use by the Jetty Server contained in this runner.
-
getBaseURLV2
public URL getBaseURLV2()
-
getProxyBaseUrl
public URL getProxyBaseUrl()
Returns a base URL consisting of the protocol, host, and port for a Connector in use by the Jetty Server contained in this runner.
-
newClient
public org.apache.solr.client.solrj.SolrClient newClient()
-
newClient
public org.apache.solr.client.solrj.SolrClient newClient(int connectionTimeoutMillis, int socketTimeoutMillis)
-
getDebugFilter
public JettySolrRunner.DebugFilter getDebugFilter()
-
main
public static void main(String[] args) throws Exception
A main class that starts jetty+solr This is useful for debugging- Throws:
Exception
-
getSolrHome
public String getSolrHome()
- Returns:
- the Solr home directory of this JettySolrRunner
-
getNodeProperties
public Properties getNodeProperties()
- Returns:
- this node's properties
-
getProxy
public org.apache.solr.client.solrj.cloud.SocketProxy getProxy()
-
-