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
  • Constructor Details

    • JettySolrRunner

      public JettySolrRunner(String solrHome, int port)
      Create a new JettySolrRunner.

      After construction, you must start the jetty with start()

      Parameters:
      solrHome - the solr home directory to use
      port - the port to run on
    • JettySolrRunner

      public JettySolrRunner(String solrHome, JettyConfig config)
      Construct a JettySolrRunner

      After construction, you must start the jetty with start()

      Parameters:
      solrHome - the base path to run from
      config - the configuration
    • JettySolrRunner

      public JettySolrRunner(String solrHome, Properties nodeProperties, JettyConfig config)
      Construct a JettySolrRunner

      After construction, you must start the jetty with start()

      Parameters:
      solrHome - the solrHome to use
      nodeProperties - the container properties
      config - the configuration
    • JettySolrRunner

      public JettySolrRunner(String solrHome, Properties nodeProperties, JettyConfig config, boolean enableProxy)
      Construct a JettySolrRunner

      After construction, you must start the jetty with start()

      Parameters:
      solrHome - the solrHome to use
      nodeProperties - the container properties
      config - the configuration
      enableProxy - enables proxy feature to disable connections
  • Method Details

    • injectJettyHandlers

      protected org.eclipse.jetty.server.Handler.Wrapper injectJettyHandlers(org.eclipse.jetty.server.Handler.Wrapper 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 server

      If 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(Path 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 like http://localhost:8983/solr
    • 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 SocketProxy getProxy()