Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.apache.solr.cloud;
  
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 import java.io.File;
 import java.util.Map;
 
Base test class for ZooKeeper tests.
 
 public abstract class AbstractZkTestCase extends SolrTestCaseJ4 {
 
   static final int TIMEOUT = 10000;
 
   private static final boolean DEBUG = false;
 
   protected static Logger log = LoggerFactory
       .getLogger(AbstractZkTestCase.class);
 
   
   public static File SOLRHOME;
   static {
     try {
        = new File(TEST_HOME());
     } catch (RuntimeException e) {
       .warn("TEST_HOME() does not exist - solrj test?");
       // solrj tests not working with TEST_HOME()
       // must override getSolrHome
     }
   }
   
   protected static ZkTestServer zkServer;
 
   protected static String zkDir;
 
 
   public static void azt_beforeClass() throws Exception {
     createTempDir();
         + "zookeeper/server1/data";
      = new ZkTestServer();
     .run();
     
     System.setProperty("solrcloud.skip.autorecovery""true");
     System.setProperty("zkHost".getZkAddress());
     System.setProperty("jetty.port""0000");
     
         "solrconfig.xml""schema.xml");
     
     initCore("solrconfig.xml""schema.xml");
   }
 
   static void buildZooKeeper(String zkHostString zkAddressString config,
       String schemathrows Exception {
     buildZooKeeper(zkHostzkAddressconfigschema);
   }
   
   // static to share with distrib test
   public static void buildZooKeeper(String zkHostString zkAddressFile solrhomeString config,
       String schemathrows Exception {
     SolrZkClient zkClient = new SolrZkClient(zkHost.);
     zkClient.makePath("/solr"falsetrue);
     zkClient.close();
 
     zkClient = new SolrZkClient(zkAddress.);
 
     Map<String,Objectprops = new HashMap<String,Object>();
     props.put("configName""conf1");
     final ZkNodeProps zkProps = new ZkNodeProps(props);
     
     zkClient.makePath("/collections/collection1", ZkStateReader.toJSON(zkProps), .true);
    zkClient.makePath("/collections/collection1/shards".true);
    zkClient.makePath("/collections/control_collection", ZkStateReader.toJSON(zkProps), .true);
    zkClient.makePath("/collections/control_collection/shards".true);
    // for now, always upload the config and schema to the canonical names
    putConfig(zkClientsolrhomeconfig"solrconfig.xml");
    putConfig(zkClientsolrhomeschema"schema.xml");
    putConfig(zkClientsolrhome"solrconfig.snippet.randomindexconfig.xml");
    putConfig(zkClientsolrhome"stopwords.txt");
    putConfig(zkClientsolrhome"protwords.txt");
    putConfig(zkClientsolrhome"currency.xml");
    putConfig(zkClientsolrhome"open-exchange-rates.json");
    putConfig(zkClientsolrhome"mapping-ISOLatin1Accent.txt");
    putConfig(zkClientsolrhome"old_synonyms.txt");
    putConfig(zkClientsolrhome"synonyms.txt");
    
    zkClient.close();
  }
  private static void putConfig(SolrZkClient zkClientFile solrhomefinal String name)
      throws Exception {
    putConfig(zkClientsolrhomenamename);
  }
  private static void putConfig(SolrZkClient zkClientFile solrhomefinal String srcNameString destName)
      throws Exception {
    File file = new File(solrhome"collection1"
        + . + "conf" + . + srcName);
    if (!file.exists()) {
      .info("skipping " + file.getAbsolutePath() + " because it doesn't exist");
      return;
    }
    String destPath = "/configs/conf1/" + destName;
    .info("put " + file.getAbsolutePath() + " to " + destPath);
    zkClient.makePath(destPathfilefalsetrue);
  }
  public void tearDown() throws Exception {
    if () {
    }
    super.tearDown();
  }
  
  public static void azt_afterClass() throws Exception {
    System.clearProperty("zkHost");
    System.clearProperty("solr.test.sys.prop1");
    System.clearProperty("solr.test.sys.prop2");
    System.clearProperty("solrcloud.skip.autorecovery");
    System.clearProperty("jetty.port");
     = null;
     = null;
    
    // wait just a bit for any zk client threads to outlast timeout
    Thread.sleep(2000);
  }
  protected void printLayout(String zkHostthrows Exception {
    SolrZkClient zkClient = new SolrZkClient(zkHost.);
    zkClient.printLayoutToStdOut();
    zkClient.close();
  }
  public static void makeSolrZkNode(String zkHostthrows Exception {
    SolrZkClient zkClient = new SolrZkClient(zkHost);
    zkClient.makePath("/solr"falsetrue);
    zkClient.close();
  }
  
  public static void tryCleanSolrZkNode(String zkHostthrows Exception {
    tryCleanPath(zkHost"/solr");
  }
  
  static void tryCleanPath(String zkHostString paththrows Exception {
    SolrZkClient zkClient = new SolrZkClient(zkHost);
    if (zkClient.exists(pathtrue)) {
      zkClient.clean(path);
    }
    zkClient.close();
  }
New to GrepCode? Check out our FAQ X