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 class
JettySolrRunner.DebugFilter
static class
JettySolrRunner.Servlet404
This 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 void
dumpCoresInfo(PrintStream pw)
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.URL
getBaseURLV2()
org.apache.solr.core.CoreContainer
getCoreContainer()
JettySolrRunner.DebugFilter
getDebugFilter()
int
getLocalPort()
Returns the Local Port of the jetty Server.int
getLocalPort(boolean internalPort)
Returns the Local Port of the jetty Server.String
getNodeName()
Properties
getNodeProperties()
org.apache.solr.client.solrj.cloud.SocketProxy
getProxy()
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.org.apache.solr.servlet.SolrDispatchFilter
getSolrDispatchFilter()
String
getSolrHome()
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 oneboolean
isRunning()
boolean
isStopped()
static void
main(String[] args)
A main class that starts jetty+solr This is useful for debuggingorg.apache.solr.client.solrj.SolrClient
newClient()
org.apache.solr.client.solrj.SolrClient
newClient(int connectionTimeoutMillis, int socketTimeoutMillis)
void
outputMetrics(File outputDirectory, String fileName)
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.void
start()
Start the Jetty servervoid
start(boolean reusePort)
Start the Jetty servervoid
stop()
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
SolrDispatchFilter
for this node
-
getCoreContainer
public org.apache.solr.core.CoreContainer getCoreContainer()
- Returns:
- the
CoreContainer
for this node
-
getNodeName
public String getNodeName()
-
isRunning
public boolean isRunning()
-
isStopped
public boolean isStopped()
-
start
public void start() throws Exception
Start 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 Exception
Start 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 Exception
Stop 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()
-
-