Class JettySolrRunner

    • 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 use
        context - the context to run in
        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 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 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
      • 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)
      • 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()