You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2015/02/25 15:57:42 UTC
svn commit: r1662238 [1/2] - in /lucene/dev/branches/branch_5x: ./ solr/
solr/core/ solr/core/src/java/org/apache/solr/cloud/
solr/core/src/java/org/apache/solr/core/
solr/core/src/java/org/apache/solr/handler/component/
solr/core/src/java/org/apache/s...
Author: romseygeek
Date: Wed Feb 25 14:57:41 2015
New Revision: 1662238
URL: http://svn.apache.org/r1662238
Log:
SOLR-7160: Decouple CoreContainer config from xml representation
Added:
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/CloudConfig.java
- copied unchanged from r1662232, lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CloudConfig.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/NodeConfig.java
- copied unchanged from r1662232, lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/NodeConfig.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
- copied unchanged from r1662232, lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/UpdateShardHandlerConfig.java
- copied unchanged from r1662232, lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateShardHandlerConfig.java
Removed:
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ConfigSolr.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ConfigSolrXml.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/util/MockConfigSolr.java
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/solr/ (props changed)
lucene/dev/branches/branch_5x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/solr/core/ (props changed)
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/Overseer.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/OverseerAutoReplicaFailoverThread.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkController.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/CoreContainer.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/SolrCores.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ZkContainer.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
lucene/dev/branches/branch_5x/solr/test-framework/ (props changed)
lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
Modified: lucene/dev/branches/branch_5x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/CHANGES.txt?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/solr/CHANGES.txt Wed Feb 25 14:57:41 2015
@@ -149,6 +149,9 @@ Other Changes
* SOLR-7147: Introduce new TrackingShardHandlerFactory for monitoring what requests
are sent to shards during tests. (hossman, shalin)
+* SOLR-7160: Rename ConfigSolr to NodeConfig, and decouple it from xml
+ representation (Alan Woodward)
+
================== 5.0.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/Overseer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/Overseer.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/Overseer.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/Overseer.java Wed Feb 25 14:57:41 2015
@@ -17,26 +17,6 @@ package org.apache.solr.cloud;
* the License.
*/
-import static org.apache.solr.cloud.OverseerCollectionProcessor.SHARD_UNIQUE;
-import static org.apache.solr.cloud.OverseerCollectionProcessor.ONLY_ACTIVE_NODES;
-import static org.apache.solr.common.params.CollectionParams.CollectionAction.BALANCESHARDUNIQUE;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
import org.apache.commons.lang.StringUtils;
import org.apache.solr.client.solrj.SolrResponse;
import org.apache.solr.cloud.overseer.ClusterStateMutator;
@@ -55,10 +35,10 @@ import org.apache.solr.common.cloud.Solr
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CollectionParams;
-import org.apache.solr.core.ConfigSolr;
+import org.apache.solr.common.util.IOUtils;
+import org.apache.solr.core.CloudConfig;
import org.apache.solr.handler.component.ShardHandler;
import org.apache.solr.update.UpdateShardHandler;
-import org.apache.solr.common.util.IOUtils;
import org.apache.solr.util.stats.Clock;
import org.apache.solr.util.stats.Timer;
import org.apache.solr.util.stats.TimerContext;
@@ -67,6 +47,26 @@ import org.apache.zookeeper.KeeperExcept
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.Closeable;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import static org.apache.solr.cloud.OverseerCollectionProcessor.ONLY_ACTIVE_NODES;
+import static org.apache.solr.cloud.OverseerCollectionProcessor.SHARD_UNIQUE;
+import static org.apache.solr.common.params.CollectionParams.CollectionAction.BALANCESHARDUNIQUE;
+
/**
* Cluster leader. Responsible for processing state updates, node assignments, creating/deleting
* collections, shards, replicas and setting various properties.
@@ -830,12 +830,12 @@ public class Overseer implements Closeab
private Stats stats;
private String id;
private boolean closed;
- private ConfigSolr config;
+ private CloudConfig config;
// overseer not responsible for closing reader
public Overseer(ShardHandler shardHandler,
UpdateShardHandler updateShardHandler, String adminPath,
- final ZkStateReader reader, ZkController zkController, ConfigSolr config)
+ final ZkStateReader reader, ZkController zkController, CloudConfig config)
throws KeeperException, InterruptedException {
this.reader = reader;
this.shardHandler = shardHandler;
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/OverseerAutoReplicaFailoverThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/OverseerAutoReplicaFailoverThread.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/OverseerAutoReplicaFailoverThread.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/OverseerAutoReplicaFailoverThread.java Wed Feb 25 14:57:41 2015
@@ -28,7 +28,7 @@ import org.apache.solr.common.cloud.DocC
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.solr.core.ConfigSolr;
+import org.apache.solr.core.CloudConfig;
import org.apache.solr.update.UpdateShardHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -90,7 +90,7 @@ public class OverseerAutoReplicaFailover
private final int workLoopDelay;
private final int waitAfterExpiration;
- public OverseerAutoReplicaFailoverThread(ConfigSolr config, ZkStateReader zkStateReader,
+ public OverseerAutoReplicaFailoverThread(CloudConfig config, ZkStateReader zkStateReader,
UpdateShardHandler updateShardHandler) {
this.zkStateReader = zkStateReader;
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java Wed Feb 25 14:57:41 2015
@@ -17,6 +17,16 @@ package org.apache.solr.cloud;
* the License.
*/
+import org.apache.solr.common.SolrException;
+import org.apache.zookeeper.server.ServerConfig;
+import org.apache.zookeeper.server.ZooKeeperServerMain;
+import org.apache.zookeeper.server.quorum.QuorumPeer;
+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
+import org.apache.zookeeper.server.quorum.QuorumPeerMain;
+import org.apache.zookeeper.server.quorum.flexible.QuorumHierarchical;
+import org.apache.zookeeper.server.quorum.flexible.QuorumMaj;
+import org.slf4j.LoggerFactory;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -27,18 +37,8 @@ import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.util.Map;
-import java.util.Properties;
import java.util.Map.Entry;
-
-import org.apache.solr.common.SolrException;
-import org.apache.zookeeper.server.ServerConfig;
-import org.apache.zookeeper.server.ZooKeeperServerMain;
-import org.apache.zookeeper.server.quorum.QuorumPeer;
-import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
-import org.apache.zookeeper.server.quorum.QuorumPeerMain;
-import org.apache.zookeeper.server.quorum.flexible.QuorumHierarchical;
-import org.apache.zookeeper.server.quorum.flexible.QuorumMaj;
-import org.slf4j.LoggerFactory;
+import java.util.Properties;
public class SolrZkServer {
@@ -47,7 +47,7 @@ public class SolrZkServer {
String zkRun;
String zkHost;
- String solrPort;
+ int solrPort;
Properties props;
SolrZkServerProps zkProps;
@@ -56,7 +56,7 @@ public class SolrZkServer {
private String dataHome;
private String confHome;
- public SolrZkServer(String zkRun, String zkHost, String dataHome, String confHome, String solrPort) {
+ public SolrZkServer(String zkRun, String zkHost, String dataHome, String confHome, int solrPort) {
this.zkRun = zkRun;
this.zkHost = zkHost;
this.dataHome = dataHome;
@@ -81,7 +81,7 @@ public class SolrZkServer {
// TODO: use something based on IP+port??? support ensemble all from same solr home?
zkProps.setDataDir(dataHome);
zkProps.zkRun = zkRun;
- zkProps.solrPort = solrPort;
+ zkProps.solrPort = Integer.toString(solrPort);
}
try {
@@ -89,7 +89,7 @@ public class SolrZkServer {
SolrZkServerProps.injectServers(props, zkRun, zkHost);
zkProps.parseProperties(props);
if (zkProps.getClientPortAddress() == null) {
- zkProps.setClientPort(Integer.parseInt(solrPort)+1000);
+ zkProps.setClientPort(solrPort + 1000);
}
} catch (QuorumPeerConfig.ConfigException | IOException e) {
if (zkRun != null)
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java Wed Feb 25 14:57:41 2015
@@ -165,7 +165,7 @@ public class ZkCLI {
SolrZkServer zkServer = null;
if (solrPort != null) {
zkServer = new SolrZkServer("true", null, solrHome + "/zoo_data",
- solrHome, solrPort);
+ solrHome, Integer.parseInt(solrPort));
zkServer.parseConfig();
zkServer.start();
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/cloud/ZkController.java Wed Feb 25 14:57:41 2015
@@ -47,6 +47,7 @@ import org.apache.solr.common.params.Col
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.URLUtil;
import org.apache.solr.core.CloseHook;
+import org.apache.solr.core.CloudConfig;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.CoreDescriptor;
import org.apache.solr.core.SolrCore;
@@ -178,12 +179,12 @@ public final class ZkController {
private final String zkServerAddress; // example: 127.0.0.1:54062/solr
- private final String localHostPort; // example: 54065
- private final String localHostContext; // example: solr
+ private final int localHostPort; // example: 54065
private final String hostName; // example: 127.0.0.1
private final String nodeName; // example: 127.0.0.1:54065_solr
private final String baseURL; // example: http://127.0.0.1:54065/solr
+ private final CloudConfig cloudConfig;
private LeaderElector overseerElector;
@@ -215,34 +216,34 @@ public final class ZkController {
// keeps track of a list of objects that need to know a new ZooKeeper session was created after expiration occurred
private List<OnReconnect> reconnectListeners = new ArrayList<OnReconnect>();
- public ZkController(final CoreContainer cc, String zkServerAddress, int zkClientTimeout, int zkClientConnectTimeout, String localHost, String locaHostPort,
- String localHostContext, int leaderVoteWait, int leaderConflictResolveWait, boolean genericCoreNodeNames, final CurrentCoreDescriptorProvider registerOnReconnect)
+ public ZkController(final CoreContainer cc, String zkServerAddress, int zkClientConnectTimeout, CloudConfig cloudConfig, final CurrentCoreDescriptorProvider registerOnReconnect)
throws InterruptedException, TimeoutException, IOException
{
if (cc == null) throw new IllegalArgumentException("CoreContainer cannot be null.");
this.cc = cc;
- this.genericCoreNodeNames = genericCoreNodeNames;
+
+ this.cloudConfig = cloudConfig;
+
+ this.genericCoreNodeNames = cloudConfig.getGenericCoreNodeNames();
+
// be forgiving and strip this off leading/trailing slashes
// this allows us to support users specifying hostContext="/" in
// solr.xml to indicate the root context, instead of hostContext=""
// which means the default of "solr"
- localHostContext = trimLeadingAndTrailingSlashes(localHostContext);
+ String localHostContext = trimLeadingAndTrailingSlashes(cloudConfig.getSolrHostContext());
this.zkServerAddress = zkServerAddress;
- this.localHostPort = locaHostPort;
- this.localHostContext = localHostContext;
- this.hostName = normalizeHostName(localHost);
- this.nodeName = generateNodeName(this.hostName,
- this.localHostPort,
- this.localHostContext);
+ this.localHostPort = cloudConfig.getSolrHostPort();
+ this.hostName = normalizeHostName(cloudConfig.getHost());
+ this.nodeName = generateNodeName(this.hostName, Integer.toString(this.localHostPort), localHostContext);
- this.leaderVoteWait = leaderVoteWait;
- this.leaderConflictResolveWait = leaderConflictResolveWait;
+ this.leaderVoteWait = cloudConfig.getLeaderVoteWait();
+ this.leaderConflictResolveWait = cloudConfig.getLeaderConflictResolveWait();
- this.clientTimeout = zkClientTimeout;
+ this.clientTimeout = cloudConfig.getZkClientTimeout();
DefaultConnectionStrategy strat = new DefaultConnectionStrategy();
- String zkACLProviderClass = cc.getConfig().getZkACLProviderClass();
+ String zkACLProviderClass = cloudConfig.getZkACLProviderClass();
ZkACLProvider zkACLProvider = null;
if (zkACLProviderClass != null && zkACLProviderClass.trim().length() > 0) {
zkACLProvider = cc.getResourceLoader().newInstance(zkACLProviderClass, ZkACLProvider.class);
@@ -250,7 +251,7 @@ public final class ZkController {
zkACLProvider = new DefaultZkACLProvider();
}
- String zkCredentialsProviderClass = cc.getConfig().getZkCredentialsProviderClass();
+ String zkCredentialsProviderClass = cloudConfig.getZkCredentialsProviderClass();
if (zkCredentialsProviderClass != null && zkCredentialsProviderClass.trim().length() > 0) {
strat.setZkCredentialsToAddAutomatically(cc.getResourceLoader().newInstance(zkCredentialsProviderClass, ZkCredentialsProvider.class));
} else {
@@ -258,8 +259,7 @@ public final class ZkController {
}
addOnReconnectListener(getConfigDirListener());
- zkClient = new SolrZkClient(zkServerAddress, zkClientTimeout,
- zkClientConnectTimeout, strat,
+ zkClient = new SolrZkClient(zkServerAddress, clientTimeout, zkClientConnectTimeout, strat,
// on reconnect, reload cloud info
new OnReconnect() {
@@ -364,7 +364,7 @@ public final class ZkController {
this.overseerRunningMap = Overseer.getRunningMap(zkClient);
this.overseerCompletedMap = Overseer.getCompletedMap(zkClient);
this.overseerFailureMap = Overseer.getFailureMap(zkClient);
- cmdExecutor = new ZkCmdExecutor(zkClientTimeout);
+ cmdExecutor = new ZkCmdExecutor(clientTimeout);
leaderElector = new LeaderElector(zkClient);
zkStateReader = new ZkStateReader(zkClient);
@@ -586,7 +586,7 @@ public final class ZkController {
return hostName;
}
- public String getHostPort() {
+ public int getHostPort() {
return localHostPort;
}
@@ -626,7 +626,7 @@ public final class ZkController {
if (!zkRunOnly) {
overseerElector = new LeaderElector(zkClient);
this.overseer = new Overseer(shardHandler, updateShardHandler,
- CoreContainer.CORES_HANDLER_PATH, zkStateReader, this, cc.getConfig());
+ CoreContainer.CORES_HANDLER_PATH, zkStateReader, this, cloudConfig);
ElectionContext context = new OverseerElectionContext(zkClient,
overseer, getNodeName());
overseerElector.setup(context);
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ConfigSetService.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ConfigSetService.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ConfigSetService.java Wed Feb 25 14:57:41 2015
@@ -19,6 +19,8 @@ package org.apache.solr.core;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
+import org.apache.solr.cloud.CloudConfigSetService;
+import org.apache.solr.cloud.ZkController;
import org.apache.solr.common.SolrException;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.IndexSchemaFactory;
@@ -38,6 +40,16 @@ import java.util.concurrent.ExecutionExc
*/
public abstract class ConfigSetService {
+ public static ConfigSetService createConfigSetService(NodeConfig nodeConfig, SolrResourceLoader loader, ZkController zkController) {
+ if (zkController != null)
+ return new CloudConfigSetService(loader, zkController);
+
+ if (nodeConfig.hasSchemaCache())
+ return new SchemaCaching(loader, nodeConfig.getConfigSetBaseDirectory());
+
+ return new Default(loader, nodeConfig.getConfigSetBaseDirectory());
+ }
+
protected final SolrResourceLoader parentLoader;
/**
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/CoreContainer.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/CoreContainer.java Wed Feb 25 14:57:41 2015
@@ -93,7 +93,7 @@ public class CoreContainer {
protected LogWatcher logging = null;
private CloserThread backgroundCloser = null;
- protected final ConfigSolr cfg;
+ protected final NodeConfig cfg;
protected final SolrResourceLoader loader;
protected final String solrHome;
@@ -140,7 +140,7 @@ public class CoreContainer {
* @see #load()
*/
public CoreContainer(SolrResourceLoader loader) {
- this(ConfigSolr.fromSolrHome(loader, loader.getInstanceDir()));
+ this(SolrXmlConfig.fromSolrHome(loader, loader.getInstanceDir()));
}
/**
@@ -160,11 +160,11 @@ public class CoreContainer {
* @param config a ConfigSolr representation of this container's configuration
* @see #load()
*/
- public CoreContainer(ConfigSolr config) {
- this(config, config.getCoresLocator());
+ public CoreContainer(NodeConfig config) {
+ this(config, new CorePropertiesLocator(config.getCoreRootDirectory()));
}
- public CoreContainer(ConfigSolr config, CoresLocator locator) {
+ public CoreContainer(NodeConfig config, CoresLocator locator) {
this.loader = config.getSolrResourceLoader();
this.solrHome = loader.getInstanceDir();
this.cfg = checkNotNull(config);
@@ -193,7 +193,7 @@ public class CoreContainer {
*/
public static CoreContainer createAndLoad(String solrHome, File configFile) {
SolrResourceLoader loader = new SolrResourceLoader(solrHome);
- CoreContainer cc = new CoreContainer(ConfigSolr.fromFile(loader, configFile));
+ CoreContainer cc = new CoreContainer(SolrXmlConfig.fromFile(loader, configFile));
try {
cc.load();
} catch (Exception e) {
@@ -230,16 +230,16 @@ public class CoreContainer {
shardHandlerFactory = ShardHandlerFactory.newInstance(cfg.getShardHandlerFactoryPluginInfo(), loader);
- updateShardHandler = new UpdateShardHandler(cfg);
+ updateShardHandler = new UpdateShardHandler(cfg.getUpdateShardHandlerConfig());
solrCores.allocateLazyCores(cfg.getTransientCacheSize(), loader);
logging = LogWatcher.newRegisteredLogWatcher(cfg.getLogWatcherConfig(), loader);
- hostName = cfg.getHost();
- log.info("Host Name: " + hostName);
+ hostName = cfg.getNodeName();
+ log.info("Node Name: " + hostName);
- zkSys.initZooKeeper(this, solrHome, cfg);
+ zkSys.initZooKeeper(this, solrHome, cfg.getCloudConfig());
collectionsHandler = createHandler(cfg.getCollectionsHandlerClass(), CollectionsHandler.class);
containerHandlers.put(COLLECTIONS_HANDLER_PATH, collectionsHandler);
@@ -248,7 +248,7 @@ public class CoreContainer {
coreAdminHandler = createHandler(cfg.getCoreAdminHandlerClass(), CoreAdminHandler.class);
containerHandlers.put(CORES_HANDLER_PATH, coreAdminHandler);
- coreConfigService = cfg.createCoreConfigService(loader, zkSys.getZkController());
+ coreConfigService = ConfigSetService.createConfigSetService(cfg, loader, zkSys.zkController);
containerProperties = cfg.getSolrProperties();
@@ -860,7 +860,7 @@ public class CoreContainer {
return zkSys.getZkController();
}
- public ConfigSolr getConfig() {
+ public NodeConfig getConfig() {
return cfg;
}
@@ -881,10 +881,10 @@ public class CoreContainer {
class CloserThread extends Thread {
CoreContainer container;
SolrCores solrCores;
- ConfigSolr cfg;
+ NodeConfig cfg;
- CloserThread(CoreContainer container, SolrCores solrCores, ConfigSolr cfg) {
+ CloserThread(CoreContainer container, SolrCores solrCores, NodeConfig cfg) {
this.container = container;
this.solrCores = solrCores;
this.cfg = cfg;
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/SolrCores.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/SolrCores.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/SolrCores.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/SolrCores.java Wed Feb 25 14:57:41 2015
@@ -126,7 +126,7 @@ class SolrCores {
}
//WARNING! This should be the _only_ place you put anything into the list of transient cores!
- protected SolrCore putTransientCore(ConfigSolr cfg, String name, SolrCore core, SolrResourceLoader loader) {
+ protected SolrCore putTransientCore(NodeConfig cfg, String name, SolrCore core, SolrResourceLoader loader) {
SolrCore retCore;
CoreContainer.log.info("Opening transient core {}", name);
synchronized (modifyLock) {
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ZkContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ZkContainer.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ZkContainer.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/ZkContainer.java Wed Feb 25 14:57:41 2015
@@ -57,44 +57,19 @@ public class ZkContainer {
}
- public void initZooKeeper(final CoreContainer cc, String solrHome, ConfigSolr config) {
-
- if (config.getCoreLoadThreadCount() <= 1) {
- throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
- "SolrCloud requires a value of at least 2 in solr.xml for coreLoadThreads");
- }
-
- initZooKeeper(cc, solrHome,
- config.getZkHost(), config.getZkClientTimeout(), config.getSolrHostPort(), config.getZkHostContext(),
- config.getHost(), config.getLeaderVoteWait(), config.getLeaderConflictResolveWait(), config.getGenericCoreNodeNames());
- }
-
- public void initZooKeeper(final CoreContainer cc, String solrHome, String zkHost, int zkClientTimeout, String solrHostPort,
- String hostContext, String host, int leaderVoteWait, int leaderConflictResolveWait, boolean genericCoreNodeNames) {
+ public void initZooKeeper(final CoreContainer cc, String solrHome, CloudConfig config) {
ZkController zkController = null;
-
- // if zkHost sys property is not set, we are not using ZooKeeper
- String zookeeperHost;
- if(zkHost == null) {
- zookeeperHost = System.getProperty("zkHost");
- } else {
- zookeeperHost = zkHost;
- }
String zkRun = System.getProperty("zkRun");
+
+ if (zkRun != null && config == null)
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Cannot start Solr in cloud mode - no cloud config provided");
- if (zkRun == null && zookeeperHost == null)
+ if (config == null)
return; // not in zk mode
- if (null == solrHostPort) {
- throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR,
- "'hostPort' must be configured to run SolrCloud");
- }
- if (null == hostContext) {
- throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR,
- "'hostContext' must be configured to run SolrCloud");
- }
+ String zookeeperHost = config.getZkHost();
// zookeeper in quorum mode currently causes a failure when trying to
// register log4j mbeans. See SOLR-2369
@@ -104,7 +79,7 @@ public class ZkContainer {
if (zkRun != null) {
String zkDataHome = System.getProperty("zkServerDataDir", solrHome + "zoo_data");
String zkConfHome = System.getProperty("zkServerConfDir", solrHome);
- zkServer = new SolrZkServer(stripChroot(zkRun), stripChroot(zookeeperHost), zkDataHome, zkConfHome, solrHostPort);
+ zkServer = new SolrZkServer(stripChroot(zkRun), stripChroot(config.getZkHost()), zkDataHome, zkConfHome, config.getSolrHostPort());
zkServer.parseConfig();
zkServer.start();
@@ -134,9 +109,7 @@ public class ZkContainer {
throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR,
"A chroot was specified in ZkHost but the znode doesn't exist. " + zookeeperHost);
}
- zkController = new ZkController(cc, zookeeperHost, zkClientTimeout,
- zkClientConnectTimeout, host, solrHostPort, hostContext,
- leaderVoteWait, leaderConflictResolveWait, genericCoreNodeNames,
+ zkController = new ZkController(cc, zookeeperHost, zkClientConnectTimeout, config,
new CurrentCoreDescriptorProvider() {
@Override
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java Wed Feb 25 14:57:41 2015
@@ -29,8 +29,8 @@ import org.apache.solr.common.util.Execu
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.URLUtil;
-import org.apache.solr.core.ConfigSolr;
import org.apache.solr.core.PluginInfo;
+import org.apache.solr.update.UpdateShardHandlerConfig;
import org.apache.solr.util.DefaultSolrThreadFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -69,8 +69,8 @@ public class HttpShardHandlerFactory ext
protected HttpClient defaultClient;
private LBHttpSolrClient loadbalancer;
//default values:
- int soTimeout = ConfigSolr.DEFAULT_DISTRIBUPDATESOTIMEOUT;
- int connectionTimeout = ConfigSolr.DEFAULT_DISTRIBUPDATECONNTIMEOUT;
+ int soTimeout = UpdateShardHandlerConfig.DEFAULT_DISTRIBUPDATESOTIMEOUT;
+ int connectionTimeout = UpdateShardHandlerConfig.DEFAULT_DISTRIBUPDATECONNTIMEOUT;
int maxConnectionsPerHost = 20;
int maxConnections = 10000;
int corePoolSize = 0;
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java Wed Feb 25 14:57:41 2015
@@ -17,30 +17,6 @@
package org.apache.solr.servlet;
-import java.io.ByteArrayInputStream;
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.http.Header;
@@ -77,11 +53,12 @@ import org.apache.solr.common.params.Sol
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.common.util.StrUtils;
-import org.apache.solr.core.ConfigSolr;
import org.apache.solr.core.CoreContainer;
+import org.apache.solr.core.NodeConfig;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.core.SolrXmlConfig;
import org.apache.solr.handler.ContentStreamHandlerBase;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryRequestBase;
@@ -96,6 +73,29 @@ import org.apache.solr.update.processor.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayInputStream;
+import java.io.EOFException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
/**
* This filter looks at the incoming URL maps them to handlers defined in solrconfig.xml
*
@@ -141,12 +141,12 @@ public class SolrDispatchFilter extends
log.info("SolrDispatchFilter.init() done");
}
- private ConfigSolr loadConfigSolr(SolrResourceLoader loader) {
+ private NodeConfig loadConfigSolr(SolrResourceLoader loader) {
String solrxmlLocation = System.getProperty("solr.solrxml.location", "solrhome");
if (solrxmlLocation == null || "solrhome".equalsIgnoreCase(solrxmlLocation))
- return ConfigSolr.fromSolrHome(loader, loader.getInstanceDir());
+ return SolrXmlConfig.fromSolrHome(loader, loader.getInstanceDir());
if ("zookeeper".equalsIgnoreCase(solrxmlLocation)) {
String zkHost = System.getProperty("zkHost");
@@ -159,7 +159,7 @@ public class SolrDispatchFilter extends
if (!zkClient.exists("/solr.xml", true))
throw new SolrException(ErrorCode.SERVER_ERROR, "Could not load solr.xml from zookeeper: node not found");
byte[] data = zkClient.getData("/solr.xml", null, null, true);
- return ConfigSolr.fromInputStream(loader, new ByteArrayInputStream(data));
+ return SolrXmlConfig.fromInputStream(loader, new ByteArrayInputStream(data));
} catch (Exception e) {
throw new SolrException(ErrorCode.SERVER_ERROR, "Could not load solr.xml from zookeeper", e);
} finally {
@@ -177,7 +177,7 @@ public class SolrDispatchFilter extends
*/
protected CoreContainer createCoreContainer() {
SolrResourceLoader loader = new SolrResourceLoader(SolrResourceLoader.locateSolrHome());
- ConfigSolr config = loadConfigSolr(loader);
+ NodeConfig config = loadConfigSolr(loader);
CoreContainer cores = new CoreContainer(config);
cores.load();
return cores;
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java Wed Feb 25 14:57:41 2015
@@ -17,9 +17,6 @@ package org.apache.solr.update;
* limitations under the License.
*/
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.impl.client.CloseableHttpClient;
@@ -31,10 +28,13 @@ import org.apache.solr.common.params.Mod
import org.apache.solr.common.util.ExecutorUtil;
import org.apache.solr.common.util.IOUtils;
import org.apache.solr.common.util.SolrjNamedThreadFactory;
-import org.apache.solr.core.ConfigSolr;
+import org.apache.solr.core.NodeConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
public class UpdateShardHandler {
private static Logger log = LoggerFactory.getLogger(UpdateShardHandler.class);
@@ -46,7 +46,12 @@ public class UpdateShardHandler {
private final CloseableHttpClient client;
- public UpdateShardHandler(ConfigSolr cfg) {
+ @Deprecated
+ public UpdateShardHandler(NodeConfig cfg) {
+ this(cfg.getUpdateShardHandlerConfig());
+ }
+
+ public UpdateShardHandler(UpdateShardHandlerConfig cfg) {
clientConnectionManager = new PoolingClientConnectionManager(SchemeRegistryFactory.createSystemDefault());
if (cfg != null ) {
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java Wed Feb 25 14:57:41 2015
@@ -27,9 +27,10 @@ import org.apache.solr.common.cloud.Repl
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkStateReader;
+import org.apache.solr.core.CloudConfig;
import org.apache.solr.handler.component.HttpShardHandlerFactory;
import org.apache.solr.update.UpdateShardHandler;
-import org.apache.solr.util.MockConfigSolr;
+import org.apache.solr.update.UpdateShardHandlerConfig;
import org.apache.zookeeper.KeeperException;
import org.junit.Ignore;
import org.junit.Test;
@@ -242,10 +243,10 @@ public class ChaosMonkeyShardSplitTest e
SolrZkClient zkClient = new SolrZkClient(address, TIMEOUT);
ZkStateReader reader = new ZkStateReader(zkClient);
LeaderElector overseerElector = new LeaderElector(zkClient);
- UpdateShardHandler updateShardHandler = new UpdateShardHandler(null);
+ UpdateShardHandler updateShardHandler = new UpdateShardHandler(UpdateShardHandlerConfig.DEFAULT);
// TODO: close Overseer
- Overseer overseer = new Overseer(
- new HttpShardHandlerFactory().getShardHandler(), updateShardHandler, "/admin/cores", reader, null, new MockConfigSolr());
+ Overseer overseer = new Overseer(new HttpShardHandlerFactory().getShardHandler(), updateShardHandler, "/admin/cores",
+ reader, null, new CloudConfig.CloudConfigBuilder("127.0.0.1", 8983, "solr").build());
overseer.close();
ElectionContext ec = new OverseerElectionContext(zkClient, overseer,
address.replaceAll("/", "_"));
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java Wed Feb 25 14:57:41 2015
@@ -17,23 +17,6 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import javax.xml.parsers.ParserConfigurationException;
-
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.cloud.overseer.OverseerAction;
@@ -45,10 +28,11 @@ import org.apache.solr.common.cloud.Solr
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CollectionParams;
+import org.apache.solr.core.CloudConfig;
import org.apache.solr.handler.component.HttpShardHandlerFactory;
import org.apache.solr.update.UpdateShardHandler;
+import org.apache.solr.update.UpdateShardHandlerConfig;
import org.apache.solr.util.DefaultSolrThreadFactory;
-import org.apache.solr.util.MockConfigSolr;
import org.apache.solr.util.stats.Snapshot;
import org.apache.solr.util.stats.Timer;
import org.apache.solr.util.stats.TimerContext;
@@ -63,6 +47,22 @@ import org.junit.Ignore;
import org.junit.Test;
import org.xml.sax.SAXException;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicInteger;
+
@Slow
public class OverseerTest extends SolrTestCaseJ4 {
@@ -1129,12 +1129,12 @@ public class OverseerTest extends SolrTe
overseers.get(overseers.size() -1).close();
overseers.get(overseers.size() -1).getZkStateReader().getZkClient().close();
}
- UpdateShardHandler updateShardHandler = new UpdateShardHandler(null);
+ UpdateShardHandler updateShardHandler = new UpdateShardHandler(UpdateShardHandlerConfig.DEFAULT);
updateShardHandlers.add(updateShardHandler);
HttpShardHandlerFactory httpShardHandlerFactory = new HttpShardHandlerFactory();
httpShardHandlerFactorys.add(httpShardHandlerFactory);
- Overseer overseer = new Overseer(
- httpShardHandlerFactory.getShardHandler(), updateShardHandler, "/admin/cores", reader, null, new MockConfigSolr());
+ Overseer overseer = new Overseer(httpShardHandlerFactory.getShardHandler(), updateShardHandler, "/admin/cores", reader, null,
+ new CloudConfig.CloudConfigBuilder("127.0.0.1", 8983, "").build());
overseers.add(overseer);
ElectionContext ec = new OverseerElectionContext(zkClient, overseer,
address.replaceAll("/", "_"));
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java Wed Feb 25 14:57:41 2015
@@ -16,17 +16,13 @@ package org.apache.solr.cloud;
* the License.
*/
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.nio.charset.StandardCharsets;
-
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.solr.core.ConfigSolr;
+import org.apache.solr.core.NodeConfig;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.servlet.SolrDispatchFilter;
import org.junit.After;
@@ -36,7 +32,10 @@ import org.junit.Test;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
public class SolrXmlInZkTest extends SolrTestCaseJ4 {
@@ -51,7 +50,7 @@ public class SolrXmlInZkTest extends Sol
private ZkStateReader reader;
- private ConfigSolr cfg;
+ private NodeConfig cfg;
private SolrDispatchFilter solrDispatchFilter;
@@ -109,7 +108,7 @@ public class SolrXmlInZkTest extends Sol
if (solrDispatchFilter != null) solrDispatchFilter.destroy();
solrDispatchFilter = new SolrDispatchFilter();
Object obj = method.invoke(solrDispatchFilter, new SolrResourceLoader(null));
- cfg = (ConfigSolr) obj;
+ cfg = (NodeConfig) obj;
log.info("####SETUP_END " + getTestName());
}
@@ -130,7 +129,7 @@ public class SolrXmlInZkTest extends Sol
try {
setUpZkAndDiskXml(true, true);
assertEquals("Should have gotten a new port the xml file sent to ZK, overrides the copy on disk",
- cfg.getSolrHostPort(), "9045");
+ cfg.getCloudConfig().getSolrHostPort(), 9045);
} finally {
closeZK();
}
@@ -141,7 +140,7 @@ public class SolrXmlInZkTest extends Sol
try {
setUpZkAndDiskXml(true, false);
assertEquals("Should have gotten a new port the xml file sent to ZK",
- cfg.getSolrHostPort(), "9045");
+ cfg.getCloudConfig().getSolrHostPort(), 9045);
} finally {
closeZK();
}
@@ -180,7 +179,7 @@ public class SolrXmlInZkTest extends Sol
try {
System.clearProperty("solr.solrxml.location");
setUpZkAndDiskXml(false, true);
- assertEquals("Should have gotten the default port", cfg.getSolrHostPort(), "8983");
+ assertEquals("Should have gotten the default port", cfg.getCloudConfig().getSolrHostPort(), 8983);
} finally {
closeZK();
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java Wed Feb 25 14:57:41 2015
@@ -19,6 +19,7 @@ package org.apache.solr.cloud;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.SolrZkClient;
+import org.apache.solr.core.CloudConfig;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.CoreDescriptor;
import org.apache.zookeeper.KeeperException;
@@ -46,7 +47,11 @@ public class TestLeaderElectionZkExpiry
AbstractZkTestCase.tryCleanSolrZkNode(server.getZkHost());
AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
- final ZkController zkController = new ZkController(cc, server.getZkAddress(), 15000, 30000, "dummy.host.com", "8984", "/solr", 180000, 180000, true, new CurrentCoreDescriptorProvider() {
+ CloudConfig cloudConfig = new CloudConfig.CloudConfigBuilder("dummy.host.com", 8984, "solr")
+ .setLeaderConflictResolveWait(180000)
+ .setLeaderVoteWait(180000)
+ .build();
+ final ZkController zkController = new ZkController(cc, server.getZkAddress(), 15000, cloudConfig, new CurrentCoreDescriptorProvider() {
@Override
public List<CoreDescriptor> getCurrentDescriptors() {
return Collections.EMPTY_LIST;
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java Wed Feb 25 14:57:41 2015
@@ -23,14 +23,13 @@ import org.apache.solr.common.cloud.Solr
import org.apache.solr.common.cloud.ZkConfigManager;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.solr.core.ConfigSolr;
+import org.apache.solr.core.CloudConfig;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.CoreDescriptor;
-import org.apache.solr.core.CoresLocator;
-import org.apache.solr.core.PluginInfo;
import org.apache.solr.handler.admin.CoreAdminHandler;
import org.apache.solr.handler.component.HttpShardHandlerFactory;
import org.apache.solr.update.UpdateShardHandler;
+import org.apache.solr.update.UpdateShardHandlerConfig;
import org.apache.zookeeper.CreateMode;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -181,9 +180,10 @@ public class ZkControllerTest extends So
zkClient.close();
cc = getCoreContainer();
-
- ZkController zkController = new ZkController(cc, server.getZkAddress(), TIMEOUT, 10000,
- "127.0.0.1", "8983", "solr", 0, 60000, true, new CurrentCoreDescriptorProvider() {
+
+ CloudConfig cloudConfig = new CloudConfig.CloudConfigBuilder("127.0.0.1", 8983, "solr").build();
+ ZkController zkController = new ZkController(cc, server.getZkAddress(), TIMEOUT, cloudConfig,
+ new CurrentCoreDescriptorProvider() {
@Override
public List<CoreDescriptor> getCurrentDescriptors() {
@@ -206,7 +206,6 @@ public class ZkControllerTest extends So
}
- @Test
public void testGetHostName() throws Exception {
String zkDir = createTempDir("zkData").toFile().getAbsolutePath();
CoreContainer cc = null;
@@ -222,8 +221,8 @@ public class ZkControllerTest extends So
ZkController zkController = null;
try {
- zkController = new ZkController(cc, server.getZkAddress(), TIMEOUT, 10000,
- "http://127.0.0.1", "8983", "solr", 0, 60000, true, new CurrentCoreDescriptorProvider() {
+ CloudConfig cloudConfig = new CloudConfig.CloudConfigBuilder("127.0.0.1", 8983, "solr").build();
+ zkController = new ZkController(cc, server.getZkAddress(), TIMEOUT, cloudConfig, new CurrentCoreDescriptorProvider() {
@Override
public List<CoreDescriptor> getCurrentDescriptors() {
@@ -263,33 +262,11 @@ public class ZkControllerTest extends So
}
@Override
- public void load() {};
-
- @Override
- public ConfigSolr getConfig() {
- return new ConfigSolr(null, null) {
-
- @Override
- public CoresLocator getCoresLocator() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public PluginInfo getShardHandlerFactoryPluginInfo() {
- return null;
- }
-
- @Override
- protected String getProperty(CfgProp key) {
- return null;
- }
-
- };
- }
+ public void load() {}
@Override
public UpdateShardHandler getUpdateShardHandler() {
- return new UpdateShardHandler(null);
+ return new UpdateShardHandler(UpdateShardHandlerConfig.DEFAULT);
}
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java Wed Feb 25 14:57:41 2015
@@ -46,7 +46,7 @@ public class TestConfigSets extends Solr
System.setProperty("configsets", configSetsBaseDir);
SolrResourceLoader loader = new SolrResourceLoader(testDirectory.getAbsolutePath());
- CoreContainer container = new CoreContainer(ConfigSolr.fromString(loader, solrxml));
+ CoreContainer container = new CoreContainer(SolrXmlConfig.fromString(loader, solrxml));
container.load();
return container;
@@ -115,7 +115,7 @@ public class TestConfigSets extends Solr
System.setProperty("configsets", csd);
SolrResourceLoader loader = new SolrResourceLoader(testDirectory.getAbsolutePath());
- CoreContainer container = new CoreContainer(ConfigSolr.fromString(loader, solrxml));
+ CoreContainer container = new CoreContainer(SolrXmlConfig.fromString(loader, solrxml));
container.load();
// We initially don't have a /get handler defined
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java Wed Feb 25 14:57:41 2015
@@ -74,7 +74,7 @@ public class TestCoreContainer extends S
private CoreContainer init(Path homeDirectory, String xml) throws Exception {
SolrResourceLoader loader = new SolrResourceLoader(homeDirectory.toString());
- CoreContainer ret = new CoreContainer(ConfigSolr.fromString(loader, xml));
+ CoreContainer ret = new CoreContainer(SolrXmlConfig.fromString(loader, xml));
ret.load();
return ret;
}
@@ -203,7 +203,7 @@ public class TestCoreContainer extends S
System.setProperty("configsets", getFile("solr/configsets").getAbsolutePath());
- final CoreContainer cc = new CoreContainer(ConfigSolr.fromString(resourceLoader, CONFIGSETS_SOLR_XML), cl);
+ final CoreContainer cc = new CoreContainer(SolrXmlConfig.fromString(resourceLoader, CONFIGSETS_SOLR_XML), cl);
CoreDescriptor badcore = new CoreDescriptor(cc, "badcore", "badcore", "configSet", "nosuchconfigset");
cl.add(badcore);
@@ -452,7 +452,7 @@ public class TestCoreContainer extends S
System.setProperty("configsets", getFile("solr/configsets").getAbsolutePath());
- final CoreContainer cc = new CoreContainer(ConfigSolr.fromString(resourceLoader, CONFIGSETS_SOLR_XML), cl);
+ final CoreContainer cc = new CoreContainer(SolrXmlConfig.fromString(resourceLoader, CONFIGSETS_SOLR_XML), cl);
cl.add(new CoreDescriptor(cc, "col_ok", "col_ok", "configSet", "minimal"));
cl.add(new CoreDescriptor(cc, "col_bad", "col_bad", "configSet", "bad-mergepolicy"));
cc.load();
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java Wed Feb 25 14:57:41 2015
@@ -52,7 +52,7 @@ public class TestCoreDiscovery extends S
if (alternateCoreDir != null) {
xmlStr = xmlStr.replace("<solr>", "<solr> <str name=\"coreRootDirectory\">" + alternateCoreDir + "</str> ");
}
- File tmpFile = new File(solrHomeDirectory, ConfigSolr.SOLR_XML_FILE);
+ File tmpFile = new File(solrHomeDirectory, SolrXmlConfig.SOLR_XML_FILE);
FileUtils.write(tmpFile, xmlStr, IOUtils.UTF_8);
}
@@ -400,10 +400,10 @@ public class TestCoreDiscovery extends S
SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.getAbsolutePath());
- ConfigSolr config = ConfigSolr.fromString(loader, "<solr><str name=\"coreRootDirectory\">relative</str></solr>");
+ NodeConfig config = SolrXmlConfig.fromString(loader, "<solr><str name=\"coreRootDirectory\">relative</str></solr>");
assertThat(config.getCoreRootDirectory(), containsString(solrHomeDirectory.getAbsolutePath()));
- ConfigSolr absConfig = ConfigSolr.fromString(loader, "<solr><str name=\"coreRootDirectory\">/absolute</str></solr>");
+ NodeConfig absConfig = SolrXmlConfig.fromString(loader, "<solr><str name=\"coreRootDirectory\">/absolute</str></solr>");
assertThat(absConfig.getCoreRootDirectory(), not(containsString(solrHomeDirectory.getAbsolutePath())));
}
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java Wed Feb 25 14:57:41 2015
@@ -49,6 +49,30 @@ public class TestLazyCores extends SolrT
private File solrHomeDirectory;
+ private static CoreDescriptor makeCoreDescriptor(CoreContainer cc, String coreName, String instanceDir, String isTransient, String loadOnStartup) {
+ return new CoreDescriptor(cc, coreName, instanceDir,
+ CoreDescriptor.CORE_TRANSIENT, isTransient,
+ CoreDescriptor.CORE_LOADONSTARTUP, loadOnStartup);
+ }
+
+ private static CoresLocator testCores = new ReadOnlyCoresLocator() {
+ @Override
+ public List<CoreDescriptor> discover(CoreContainer cc) {
+ return ImmutableList.of(
+ new CoreDescriptor(cc, "collection1", "collection1"),
+ makeCoreDescriptor(cc, "collectionLazy2", "collection2", "true", "true"),
+ makeCoreDescriptor(cc, "collectionLazy3", "collection3", "on", "false"),
+ makeCoreDescriptor(cc, "collectionLazy4", "collection4", "false", "false"),
+ makeCoreDescriptor(cc, "collectionLazy5", "collection5", "false", "true"),
+ makeCoreDescriptor(cc, "collectionLazy6", "collection6", "true", "false"),
+ makeCoreDescriptor(cc, "collectionLazy7", "collection7", "true", "false"),
+ makeCoreDescriptor(cc, "collectionLazy8", "collection8", "true", "false"),
+ makeCoreDescriptor(cc, "collectionLazy9", "collection9", "true", "false")
+ );
+ }
+ };
+
+
private CoreContainer init() throws Exception {
solrHomeDirectory = createTempDir().toFile();
@@ -57,7 +81,8 @@ public class TestLazyCores extends SolrT
}
SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.getAbsolutePath());
- return createCoreContainer(new LazyCoreTestConfig(loader));
+ NodeConfig config = new NodeConfig.NodeConfigBuilder("testNode", loader).setTransientCacheSize(4).build();
+ return createCoreContainer(config, testCores);
}
@Test
@@ -539,10 +564,10 @@ public class TestLazyCores extends SolrT
FileUtils.write(solrXml, "<solr/>", Charsets.UTF_8.toString());
SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.getAbsolutePath());
- ConfigSolrXml config = (ConfigSolrXml) ConfigSolr.fromFile(loader, solrXml);
+ NodeConfig config = SolrXmlConfig.fromFile(loader, solrXml);
// OK this should succeed, but at the end we should have recorded a series of errors.
- return createCoreContainer(config);
+ return createCoreContainer(config, new CorePropertiesLocator(config.getCoreRootDirectory()));
}
// We want to see that the core "heals itself" if an un-corrupted file is written to the directory.
@@ -619,51 +644,4 @@ public class TestLazyCores extends SolrT
return StringUtils.join(args, File.separator);
}
- public static class LazyCoreTestConfig extends ConfigSolr {
-
- public LazyCoreTestConfig(SolrResourceLoader loader) {
- super(loader, null);
- }
-
- static CoreDescriptor makeCoreDescriptor(CoreContainer cc, String coreName, String instanceDir, String isTransient, String loadOnStartup) {
- return new CoreDescriptor(cc, coreName, instanceDir,
- CoreDescriptor.CORE_TRANSIENT, isTransient,
- CoreDescriptor.CORE_LOADONSTARTUP, loadOnStartup);
- }
-
- @Override
- public CoresLocator getCoresLocator() {
- return new ReadOnlyCoresLocator() {
- @Override
- public List<CoreDescriptor> discover(CoreContainer cc) {
- return ImmutableList.of(
- new CoreDescriptor(cc, "collection1", "collection1"),
- makeCoreDescriptor(cc, "collectionLazy2", "collection2", "true", "true"),
- makeCoreDescriptor(cc, "collectionLazy3", "collection3", "on", "false"),
- makeCoreDescriptor(cc, "collectionLazy4", "collection4", "false", "false"),
- makeCoreDescriptor(cc, "collectionLazy5", "collection5", "false", "true"),
- makeCoreDescriptor(cc, "collectionLazy6", "collection6", "true", "false"),
- makeCoreDescriptor(cc, "collectionLazy7", "collection7", "true", "false"),
- makeCoreDescriptor(cc, "collectionLazy8", "collection8", "true", "false"),
- makeCoreDescriptor(cc, "collectionLazy9", "collection9", "true", "false")
- );
- }
- };
- }
-
- @Override
- public PluginInfo getShardHandlerFactoryPluginInfo() {
- return null;
- }
-
- @Override
- protected String getProperty(CfgProp key) {
- switch (key) {
- case SOLR_TRANSIENTCACHESIZE:
- return "4";
- }
- return null;
- }
- }
-
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java Wed Feb 25 14:57:41 2015
@@ -22,8 +22,10 @@ import org.apache.commons.io.FileUtils;
import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
+import org.apache.solr.update.UpdateShardHandlerConfig;
import org.junit.AfterClass;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.rules.ExpectedException;
import org.junit.rules.RuleChain;
@@ -63,7 +65,9 @@ public class TestSolrXml extends SolrTes
File testSrcRoot = new File(SolrTestCaseJ4.TEST_HOME());
FileUtils.copyFile(new File(testSrcRoot, "solr-50-all.xml"), new File(solrHome, "solr.xml"));
- ConfigSolr cfg = ConfigSolr.fromSolrHome(loader, solrHome.getAbsolutePath());
+ NodeConfig cfg = SolrXmlConfig.fromSolrHome(loader, solrHome.getAbsolutePath());
+ CloudConfig ccfg = cfg.getCloudConfig();
+ UpdateShardHandlerConfig ucfg = cfg.getUpdateShardHandlerConfig();
assertEquals("core admin handler class", "testAdminHandler", cfg.getCoreAdminHandlerClass());
assertEquals("collection handler class", "testCollectionsHandler", cfg.getCollectionsHandlerClass());
@@ -71,13 +75,21 @@ public class TestSolrXml extends SolrTes
assertEquals("core load threads", 11, cfg.getCoreLoadThreadCount());
assertThat("core root dir", cfg.getCoreRootDirectory(), containsString("testCoreRootDirectory"));
assertEquals("distrib conn timeout", 22, cfg.getDistributedConnectionTimeout());
+ assertEquals("distrib conn timeout", 22, cfg.getUpdateShardHandlerConfig().getDistributedConnectionTimeout());
assertEquals("distrib socket timeout", 33, cfg.getDistributedSocketTimeout());
+ assertEquals("distrib socket timeout", 33, cfg.getUpdateShardHandlerConfig().getDistributedSocketTimeout());
assertEquals("max update conn", 3, cfg.getMaxUpdateConnections());
+ assertEquals("max update conn", 3, cfg.getUpdateShardHandlerConfig().getMaxUpdateConnections());
assertEquals("max update conn/host", 37, cfg.getMaxUpdateConnectionsPerHost());
- assertEquals("host", "testHost", cfg.getHost());
- assertEquals("zk host context", "testHostContext", cfg.getZkHostContext());
- assertEquals("solr host port", "44", cfg.getSolrHostPort());
- assertEquals("leader vote wait", 55, cfg.getLeaderVoteWait());
+ assertEquals("max update conn/host", 37, cfg.getUpdateShardHandlerConfig().getMaxUpdateConnectionsPerHost());
+ assertEquals("distrib conn timeout", 22, ucfg.getDistributedConnectionTimeout());
+ assertEquals("distrib socket timeout", 33, ucfg.getDistributedSocketTimeout());
+ assertEquals("max update conn", 3, ucfg.getMaxUpdateConnections());
+ assertEquals("max update conn/host", 37, ucfg.getMaxUpdateConnectionsPerHost());
+ assertEquals("host", "testHost", ccfg.getHost());
+ assertEquals("zk host context", "testHostContext", ccfg.getSolrHostContext());
+ assertEquals("solr host port", 44, ccfg.getSolrHostPort());
+ assertEquals("leader vote wait", 55, ccfg.getLeaderVoteWait());
assertEquals("logging class", "testLoggingClass", cfg.getLogWatcherConfig().getLoggingClass());
assertEquals("log watcher", true, cfg.getLogWatcherConfig().isEnabled());
assertEquals("log watcher size", 88, cfg.getLogWatcherConfig().getWatcherSize());
@@ -86,8 +98,8 @@ public class TestSolrXml extends SolrTes
assertEquals("shardLib", "testSharedLib", cfg.getSharedLibDirectory());
assertEquals("schema cache", true, cfg.hasSchemaCache());
assertEquals("trans cache size", 66, cfg.getTransientCacheSize());
- assertEquals("zk client timeout", 77, cfg.getZkClientTimeout());
- assertEquals("zk host", "testZkHost", cfg.getZkHost());
+ assertEquals("zk client timeout", 77, ccfg.getZkClientTimeout());
+ assertEquals("zk host", "testZkHost", ccfg.getZkHost());
}
// Test a few property substitutions that happen to be in solr-50-all.xml.
@@ -102,19 +114,23 @@ public class TestSolrXml extends SolrTes
File testSrcRoot = new File(SolrTestCaseJ4.TEST_HOME());
FileUtils.copyFile(new File(testSrcRoot, "solr-50-all.xml"), new File(solrHome, "solr.xml"));
- ConfigSolr cfg = ConfigSolr.fromSolrHome(loader, solrHome.getAbsolutePath());
+ NodeConfig cfg = SolrXmlConfig.fromSolrHome(loader, solrHome.getAbsolutePath());
assertThat(cfg.getCoreRootDirectory(), containsString("myCoreRoot"));
- assertEquals("solr host port", "8888", cfg.getSolrHostPort());
+ assertEquals("solr host port", 8888, cfg.getCloudConfig().getSolrHostPort());
assertEquals("schema cache", false, cfg.hasSchemaCache());
}
public void testExplicitNullGivesDefaults() throws IOException {
- // 2 diff options, one where the default is in fact null, and one where it isn't
- String solrXml = "<solr><solrcloud><null name=\"host\"/><null name=\"leaderVoteWait\"/></solrcloud></solr>";
+ String solrXml = "<solr>" +
+ "<solrcloud>" +
+ "<str name=\"host\">host</str>" +
+ "<int name=\"hostPort\">8983</int>" +
+ "<str name=\"hostContext\">solr</str>" +
+ "<null name=\"leaderVoteWait\"/>" +
+ "</solrcloud></solr>";
- ConfigSolr cfg = ConfigSolr.fromString(loader, solrXml);
- assertEquals("host", null, cfg.getHost());
- assertEquals("leaderVoteWait", 180000, cfg.getLeaderVoteWait());
+ NodeConfig cfg = SolrXmlConfig.fromString(loader, solrXml);
+ assertEquals("leaderVoteWait", 180000, cfg.getCloudConfig().getLeaderVoteWait());
}
public void testIntAsLongBad() throws IOException {
@@ -122,14 +138,14 @@ public class TestSolrXml extends SolrTes
String solrXml = "<solr><long name=\"transientCacheSize\">"+bad+"</long></solr>";
expectedException.expect(SolrException.class);
- expectedException.expectMessage(String.format(Locale.ROOT, "Value of '%s' can not be parsed as 'int'", bad));
- ConfigSolr cfg = ConfigSolr.fromString(loader, solrXml);
+ expectedException.expectMessage("transientCacheSize");
+ NodeConfig cfg = SolrXmlConfig.fromString(loader, solrXml);
}
public void testIntAsLongOk() throws IOException {
int ok = random().nextInt();
String solrXml = "<solr><long name=\"transientCacheSize\">"+ok+"</long></solr>";
- ConfigSolr cfg = ConfigSolr.fromString(loader, solrXml);
+ NodeConfig cfg = SolrXmlConfig.fromString(loader, solrXml);
assertEquals(ok, cfg.getTransientCacheSize());
}
@@ -139,8 +155,8 @@ public class TestSolrXml extends SolrTes
+ "<solrcloud><bool name=\"genericCoreNodeNames\">false</bool></solrcloud>"
+ "</solr>";
expectedException.expect(SolrException.class);
- expectedException.expectMessage("2 instances of <solrcloud> found in solr.xml");
- ConfigSolr cfg = ConfigSolr.fromString(loader, solrXml);
+ expectedException.expectMessage("Multiple instances of solrcloud section found in solr.xml");
+ NodeConfig cfg = SolrXmlConfig.fromString(loader, solrXml);
}
public void testMultiLoggingSectionError() throws IOException {
@@ -149,8 +165,8 @@ public class TestSolrXml extends SolrTes
+ "<logging><str name=\"class\">foo</str></logging>"
+ "</solr>";
expectedException.expect(SolrException.class);
- expectedException.expectMessage("2 instances of <logging> found in solr.xml");
- ConfigSolr cfg = ConfigSolr.fromString(loader, solrXml);
+ expectedException.expectMessage("Multiple instances of logging section found in solr.xml");
+ NodeConfig cfg = SolrXmlConfig.fromString(loader, solrXml);
}
public void testMultiLoggingWatcherSectionError() throws IOException {
@@ -161,23 +177,23 @@ public class TestSolrXml extends SolrTes
+ "</logging></solr>";
expectedException.expect(SolrException.class);
- expectedException.expectMessage("3 instances of Logging <watcher> found in solr.xml");
- ConfigSolr cfg = ConfigSolr.fromString(loader, solrXml);
+ expectedException.expectMessage("Multiple instances of logging/watcher section found in solr.xml");
+ NodeConfig cfg = SolrXmlConfig.fromString(loader, solrXml);
}
public void testValidStringValueWhenBoolTypeIsExpected() throws IOException {
- boolean genericCoreNodeNames = random().nextBoolean();
- String solrXml = String.format(Locale.ROOT, "<solr><solrcloud><str name=\"genericCoreNodeNames\">%s</str></solrcloud></solr>", genericCoreNodeNames);
+ boolean schemaCache = random().nextBoolean();
+ String solrXml = String.format(Locale.ROOT, "<solr><str name=\"shareSchema\">%s</str></solr>", schemaCache);
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
- assertEquals("gen core node names", genericCoreNodeNames, configSolr.getGenericCoreNodeNames());
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
+ assertEquals("gen core node names", schemaCache, nodeConfig.hasSchemaCache());
}
public void testValidStringValueWhenIntTypeIsExpected() throws IOException {
int maxUpdateConnections = random().nextInt();
- String solrXml = String.format(Locale.ROOT, "<solr><solrcloud><str name=\"maxUpdateConnections\">%d</str></solrcloud></solr>", maxUpdateConnections);
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
- assertEquals("max update conn", maxUpdateConnections, configSolr.getMaxUpdateConnections());
+ String solrXml = String.format(Locale.ROOT, "<solr><updateshardhandler><str name=\"maxUpdateConnections\">%d</str></updateshardhandler></solr>", maxUpdateConnections);
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
+ assertEquals("max update conn", maxUpdateConnections, nodeConfig.getUpdateShardHandlerConfig().getMaxUpdateConnections());
}
public void testFailAtConfigParseTimeWhenIntTypeIsExpectedAndLongTypeIsGiven() throws IOException {
@@ -185,26 +201,8 @@ public class TestSolrXml extends SolrTes
String solrXml = String.format(Locale.ROOT, "<solr><solrcloud><long name=\"maxUpdateConnections\">%d</long></solrcloud></solr>", val);
expectedException.expect(SolrException.class);
- expectedException.expectMessage(String.format(Locale.ROOT, "Value of '%d' can not be parsed as 'int'", val));
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
- }
-
- public void testFailAtConfigParseTimeWhenBoolTypeIsExpectedAndLongTypeIsGiven() throws IOException {
- long val = random().nextLong();
- String solrXml = String.format(Locale.ROOT, "<solr><solrcloud><long name=\"genericCoreNodeNames\">%d</long></solrcloud></solr>", val);
-
- expectedException.expect(SolrException.class);
- expectedException.expectMessage(String.format(Locale.ROOT, "Value of '%d' can not be parsed as 'bool'", val));
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
- }
-
- public void testFailAtConfigParseTimeWhenBoolTypeIsExpectedAndDoubleTypeIsGiven() throws IOException {
- String val = ""+random().nextDouble();
- String solrXml = String.format(Locale.ROOT, "<solr><solrcloud><double name=\"genericCoreNodeNames\">%s</double></solrcloud></solr>", val);
-
- expectedException.expect(SolrException.class);
- expectedException.expectMessage(String.format(Locale.ROOT, "Value of '%s' can not be parsed as 'bool'", val));
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
+ expectedException.expectMessage("Error parsing 'maxUpdateConnections'");
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
}
public void testFailAtConfigParseTimeWhenBoolTypeIsExpectedAndValueIsInvalidString() throws IOException {
@@ -212,7 +210,7 @@ public class TestSolrXml extends SolrTes
expectedException.expect(SolrException.class);
expectedException.expectMessage("invalid boolean value: NOT_A_BOOLEAN");
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
}
public void testFailAtConfigParseTimeWhenIntTypeIsExpectedAndBoolTypeIsGiven() throws IOException {
@@ -223,34 +221,34 @@ public class TestSolrXml extends SolrTes
expectedException.expect(SolrException.class);
expectedException.expectMessage(String.format(Locale.ROOT, "Value of 'unknown-option' can not be parsed as 'int': \"%s\"", randomBoolean));
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
}
public void testFailAtConfigParseTimeWhenUnrecognizedSolrCloudOptionWasFound() throws IOException {
- String solrXml = "<solr><solrcloud><bool name=\"unknown-option\">true</bool></solrcloud></solr>";
+ String solrXml = "<solr><solrcloud><str name=\"host\">host</str><int name=\"hostPort\">8983</int><str name=\"hostContext\"></str><bool name=\"unknown-option\">true</bool></solrcloud></solr>";
expectedException.expect(SolrException.class);
- expectedException.expectMessage("<solrcloud> section of solr.xml contains 1 unknown config parameter(s): [unknown-option]");
+ expectedException.expectMessage("Unknown configuration parameter in <solrcloud> section of solr.xml: unknown-option");
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
}
public void testFailAtConfigParseTimeWhenUnrecognizedSolrOptionWasFound() throws IOException {
String solrXml = "<solr><bool name=\"unknown-bool-option\">true</bool><str name=\"unknown-str-option\">true</str></solr>";
expectedException.expect(SolrException.class);
- expectedException.expectMessage("Main section of solr.xml contains 2 unknown config parameter(s): [unknown-bool-option, unknown-str-option]");
+ expectedException.expectMessage("Unknown configuration value in solr.xml: unknown-bool-option");
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
}
public void testFailAtConfigParseTimeWhenUnrecognizedLoggingOptionWasFound() throws IOException {
String solrXml = String.format(Locale.ROOT, "<solr><logging><bool name=\"unknown-option\">%s</bool></logging></solr>", random().nextBoolean());
expectedException.expect(SolrException.class);
- expectedException.expectMessage("<logging> section of solr.xml contains 1 unknown config parameter(s): [unknown-option]");
+ expectedException.expectMessage("Unknown value in logwatcher config: unknown-option");
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
}
public void testFailAtConfigParseTimeWhenLoggingConfigParamsAreDuplicated() throws IOException {
@@ -264,9 +262,9 @@ public class TestSolrXml extends SolrTes
v1, v2);
expectedException.expect(SolrException.class);
- expectedException.expectMessage(String.format(Locale.ROOT, "<logging> section of solr.xml contains duplicated 'class' in solr.xml: [%s, %s]", v1, v2));
+ expectedException.expectMessage("<logging> section of solr.xml contains duplicated 'class'");
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
}
public void testFailAtConfigParseTimeWhenSolrCloudConfigParamsAreDuplicated() throws IOException {
@@ -283,11 +281,12 @@ public class TestSolrXml extends SolrTes
v1, v2, v3);
expectedException.expect(SolrException.class);
- expectedException.expectMessage(String.format(Locale.ROOT, "<solrcloud> section of solr.xml contains duplicated 'zkClientTimeout' in solr.xml: [%s, %s, %s]", v1, v2, v3));
+ expectedException.expectMessage("<solrcloud> section of solr.xml contains duplicated 'zkClientTimeout'");
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
}
+ @Ignore
public void testFailAtConfigParseTimeWhenSolrConfigParamsAreDuplicated() throws IOException {
String v1 = ""+random().nextInt();
String v2 = ""+random().nextInt();
@@ -299,9 +298,36 @@ public class TestSolrXml extends SolrTes
v1, v2);
expectedException.expect(SolrException.class);
- expectedException.expectMessage(String.format(Locale.ROOT, "Main section of solr.xml contains duplicated 'coreLoadThreads' in solr.xml: [%s, %s]", v1, v2));
+ expectedException.expectMessage("Main section of solr.xml contains duplicated 'coreLoadThreads'");
+
+ NodeConfig nodeConfig = SolrXmlConfig.fromString(loader, solrXml);
+ }
+
+ public void testCloudConfigRequiresHost() throws Exception {
+
+ expectedException.expect(SolrException.class);
+ expectedException.expectMessage("solrcloud section missing required entry 'host'");
+
+ SolrXmlConfig.fromString(loader, "<solr><solrcloud></solrcloud></solr>");
+
+ }
+
+ public void testCloudConfigRequiresHostPort() throws Exception {
+
+ expectedException.expect(SolrException.class);
+ expectedException.expectMessage("solrcloud section missing required entry 'hostPort'");
+
+ SolrXmlConfig.fromString(loader, "<solr><solrcloud><str name=\"host\">host</str></solrcloud></solr>");
+
+ }
+
+ public void testCloudConfigRequiresHostContext() throws Exception {
+
+ expectedException.expect(SolrException.class);
+ expectedException.expectMessage("solrcloud section missing required entry 'hostContext'");
+
+ SolrXmlConfig.fromString(loader, "<solr><solrcloud><str name=\"host\">host</str><int name=\"hostPort\">8983</int></solrcloud></solr>");
- ConfigSolr configSolr = ConfigSolr.fromString(loader, solrXml);
}
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java Wed Feb 25 14:57:41 2015
@@ -33,10 +33,7 @@ import org.apache.solr.common.cloud.ZkSt
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.UpdateParams;
import org.apache.solr.common.util.NamedList;
-import org.apache.solr.core.ConfigSolr;
import org.apache.solr.core.CoreContainer;
-import org.apache.solr.core.CoresLocator;
-import org.apache.solr.core.PluginInfo;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrEventListener;
import org.apache.solr.search.SolrIndexSearcher;
@@ -73,23 +70,7 @@ public class SolrCmdDistributorTest exte
private UpdateShardHandler updateShardHandler;
public SolrCmdDistributorTest() throws ParserConfigurationException, IOException, SAXException {
- updateShardHandler = new UpdateShardHandler(new ConfigSolr(null, null) {
-
- @Override
- public CoresLocator getCoresLocator() {
- return null;
- }
-
- @Override
- public PluginInfo getShardHandlerFactoryPluginInfo() {
- return null;
- }
-
- @Override
- protected String getProperty(CfgProp key) {
- return null;
- }
- });
+ updateShardHandler = new UpdateShardHandler(UpdateShardHandlerConfig.DEFAULT);
stress = 0;
}
Modified: lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java?rev=1662238&r1=1662237&r2=1662238&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java Wed Feb 25 14:57:41 2015
@@ -46,9 +46,11 @@ import org.apache.solr.common.params.Mod
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.ObjectReleaseTracker;
import org.apache.solr.common.util.XML;
-import org.apache.solr.core.ConfigSolr;
+import org.apache.solr.core.CoresLocator;
+import org.apache.solr.core.NodeConfig;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.CoreDescriptor;
+import org.apache.solr.core.SolrXmlConfig;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrResourceLoader;
@@ -309,14 +311,14 @@ public abstract class SolrTestCaseJ4 ext
*/
public static void setupNoCoreTest(File solrHome, String xmlStr) throws Exception {
- File tmpFile = new File(solrHome, ConfigSolr.SOLR_XML_FILE);
+ File tmpFile = new File(solrHome, SolrXmlConfig.SOLR_XML_FILE);
if (xmlStr == null) {
xmlStr = "<solr></solr>";
}
FileUtils.write(tmpFile, xmlStr, IOUtils.UTF_8);
SolrResourceLoader loader = new SolrResourceLoader(solrHome.getAbsolutePath());
- h = new TestHarness(ConfigSolr.fromFile(loader, new File(solrHome, "solr.xml")));
+ h = new TestHarness(SolrXmlConfig.fromFile(loader, new File(solrHome, "solr.xml")));
lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
}
@@ -598,15 +600,17 @@ public abstract class SolrTestCaseJ4 ext
return h.getCoreContainer();
}
- public static CoreContainer createCoreContainer(ConfigSolr config) {
+ public static CoreContainer createCoreContainer(NodeConfig config, CoresLocator locator) {
testSolrHome = config.getSolrResourceLoader().getInstanceDir();
- h = new TestHarness(config);
+ h = new TestHarness(config, locator);
lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
return h.getCoreContainer();
}
public static CoreContainer createCoreContainer(String coreName, String dataDir, String solrConfig, String schema) {
- CoreContainer cc = createCoreContainer(new TestHarness.TestConfigSolr(coreName, dataDir, solrConfig, schema));
+ NodeConfig nodeConfig = TestHarness.buildTestNodeConfig(new SolrResourceLoader(SolrResourceLoader.locateSolrHome()));
+ CoresLocator locator = new TestHarness.TestCoresLocator(coreName, dataDir, solrConfig, schema);
+ CoreContainer cc = createCoreContainer(nodeConfig, locator);
h.coreName = coreName;
return cc;
}