Package org.apache.solr.cloud
Class MiniSolrCloudCluster.Builder
java.lang.Object
org.apache.solr.cloud.MiniSolrCloudCluster.Builder
- Enclosing class:
MiniSolrCloudCluster
Builder class for a MiniSolrCloudCluster
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionUpload a collection config before tests startbuild()Configure, run and return theMiniSolrCloudClusterConfigure and run theMiniSolrCloudClusterformatZkServer(boolean formatZkServer) This method makes the MiniSolrCloudCluster use the "other" Collection API execution strategy than it normally would.withDefaultClusterProperty(String key, String value) withDistributedClusterStateUpdates(boolean distributedCollectionConfigSetApi, boolean distributedClusterStateUpdates) Force the cluster Collection and config state API execution as well as the cluster state update strategy to be either Overseer based or distributed.Use a JettyConfig.Builder to configure the cluster's jetty serverswithMetrics(boolean trackJettyMetrics) withProperty(String propertyName, String propertyValue) Set a cluster propertywithSecurityJson(String securityJson) Configure the specified security.json for the MiniSolrCloudClusterwithSecurityJson(Path securityJson) Configure the specified security.json for the MiniSolrCloudClusterwithSolrXml(String solrXml) Use the provided string as solr.xml contentwithSolrXml(Path solrXml) Read solr.xml from the provided pathDisables the default/built-in simple trace ID generation/propagation.
-
Constructor Details
-
Builder
Create a builder- Parameters:
nodeCount- the number of nodes in the clusterbaseDir- a base directory for the cluster
-
-
Method Details
-
withJettyConfig
Use a JettyConfig.Builder to configure the cluster's jetty servers -
withSolrXml
Use the provided string as solr.xml content -
withSolrXml
Read solr.xml from the provided path -
withSecurityJson
Configure the specified security.json for the MiniSolrCloudCluster- Parameters:
securityJson- The path specifying the security.json file- Returns:
- the instance of MiniSolrCloudCluster.Builder
-
withSecurityJson
Configure the specified security.json for the MiniSolrCloudCluster- Parameters:
securityJson- The string specifying the security.json configuration- Returns:
- the instance of MiniSolrCloudCluster.Builder
-
addConfig
Upload a collection config before tests start- Parameters:
configName- the config nameconfigPath- the path to the config files
-
useOtherCollectionConfigSetExecution
This method makes the MiniSolrCloudCluster use the "other" Collection API execution strategy than it normally would. When some test classes call this method (and some don't) we make sure that a run of multiple tests with a single seed will exercise both code lines (distributed and Overseer based Collection API) so regressions can be spotted faster.The real need is for a few tests covering reasonable use cases to call this method. If you're adding a new test, you don't have to call it (but it's ok if you do).
-
withDistributedClusterStateUpdates
public MiniSolrCloudCluster.Builder withDistributedClusterStateUpdates(boolean distributedCollectionConfigSetApi, boolean distributedClusterStateUpdates) Force the cluster Collection and config state API execution as well as the cluster state update strategy to be either Overseer based or distributed. This method can be useful when debugging tests failing in only one of the two modes to have all local runs exhibit the issue, as well obviously for tests that are not compatible with one of the two modes.If this method is not called, the strategy being used will be random if the configuration passed to the cluster (
solr.xmlequivalent) contains a placeholder similar to:
For an example of a configuration supporting this setting, see<solrcloud> .... <str name="distributedClusterStateUpdates">${solr.distributedClusterStateUpdates:false}</str> <str name="distributedCollectionConfigSetExecution">${solr.distributedCollectionConfigSetExecution:false}</str> .... </solrcloud>MiniSolrCloudCluster.DEFAULT_CLOUD_SOLR_XML. When a test sets a differentsolr.xmlconfig (usingwithSolrXml(java.lang.String)), if the config does not contain the placeholder, the strategy will be defined by the values assigned touseDistributedClusterStateUpdatesanduseDistributedCollectionConfigSetExecutioninCloudConfig.CloudConfigBuilder.- Parameters:
distributedCollectionConfigSetApi- Whentrue, Collection and Config Set API commands are executed in a distributed way by nodes. Whenfalse, they are executed by Overseer.distributedClusterStateUpdates- Whentrue, cluster state updates are handled in a distributed way by nodes. Whenfalse, cluster state updates are handled by Overseer.If
distributedCollectionConfigSetApiistruethen this parameter must betrue.
-
withProperty
Set a cluster property- Parameters:
propertyName- the property namepropertyValue- the property value
-
withMetrics
-
formatZkServer
-
configure
Configure and run theMiniSolrCloudCluster- Throws:
Exception- if an error occurs on startup
-
build
Configure, run and return theMiniSolrCloudCluster- Throws:
Exception- if an error occurs on startup
-
withDefaultClusterProperty
-
withTraceIdGenerationDisabled
Disables the default/built-in simple trace ID generation/propagation.Tracers are registered as global singletons and if for example a test needs to use a MockTracer or a "real" Tracer, it needs to call this method so that the test setup doesn't accidentally reset the Tracer it wants to use.
-