http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/Slice.java
----------------------------------------------------------------------
diff --git a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/Slice.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/Slice.java
deleted file mode 100644
index 6e0ca55..0000000
--- a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/Slice.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import org.noggit.JSONUtil;
-import org.noggit.JSONWriter;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * A Slice contains immutable information about a logical shard (all replicas 
that share the same shard id).
- */
-public class Slice extends ZkNodeProps {
-  public static String REPLICAS = "replicas";
-  public static String RANGE = "range";
-  public static String STATE = "state";
-  public static String LEADER = "leader";       // FUTURE: do we want to 
record the leader as a slice property in the JSON (as opposed to isLeader as a 
replica property?)
-  public static String ACTIVE = "active";
-  public static String INACTIVE = "inactive";
-  public static String CONSTRUCTION = "construction";
-  public static String RECOVERY = "recovery";
-  public static String PARENT = "parent";
-
-  private final String name;
-  private final DocRouter.Range range;
-  private final Integer replicationFactor;      // FUTURE: optional per-slice 
override of the collection replicationFactor
-  private final Map<String,Replica> replicas;
-  private final Replica leader;
-  private final String state;
-  private final String parent;
-  private final Map<String, RoutingRule> routingRules;
-
-  /**
-   * @param name  The name of the slice
-   * @param replicas The replicas of the slice.  This is used directly and a 
copy is not made.  If null, replicas will be constructed from props.
-   * @param props  The properties of the slice - a shallow copy will always be 
made.
-   */
-  public Slice(String name, Map<String,Replica> replicas, Map<String,Object> 
props) {
-    super( props==null ? new LinkedHashMap<String,Object>(2) : new 
LinkedHashMap<>(props));
-    this.name = name;
-
-    Object rangeObj = propMap.get(RANGE);
-    if (propMap.containsKey(STATE) && propMap.get(STATE) != null)
-      this.state = (String) propMap.get(STATE);
-    else {
-      this.state = ACTIVE;                         //Default to ACTIVE
-      propMap.put(STATE, this.state);
-    }
-    DocRouter.Range tmpRange = null;
-    if (rangeObj instanceof DocRouter.Range) {
-      tmpRange = (DocRouter.Range)rangeObj;
-    } else if (rangeObj != null) {
-      // Doesn't support custom implementations of Range, but currently not 
needed.
-      tmpRange = DocRouter.DEFAULT.fromString(rangeObj.toString());
-    }
-    range = tmpRange;
-
-    /** debugging.  this isn't an error condition for custom sharding.
-    if (range == null) {
-      System.out.println("###### NO RANGE for " + name + " props=" + props);
-    }
-    **/
-
-    if (propMap.containsKey(PARENT) && propMap.get(PARENT) != null)
-      this.parent = (String) propMap.get(PARENT);
-    else
-      this.parent = null;
-
-    replicationFactor = null;  // future
-
-    // add the replicas *after* the other properties (for aesthetics, so it's 
easy to find slice properties in the JSON output)
-    this.replicas = replicas != null ? replicas : 
makeReplicas((Map<String,Object>)propMap.get(REPLICAS));
-    propMap.put(REPLICAS, this.replicas);
-
-    Map<String, Object> rules = (Map<String, Object>) 
propMap.get("routingRules");
-    if (rules != null) {
-      this.routingRules = new HashMap<>();
-      for (Map.Entry<String, Object> entry : rules.entrySet()) {
-        Object o = entry.getValue();
-        if (o instanceof Map) {
-          Map map = (Map) o;
-          RoutingRule rule = new RoutingRule(entry.getKey(), map);
-          routingRules.put(entry.getKey(), rule);
-        } else {
-          routingRules.put(entry.getKey(), (RoutingRule) o);
-        }
-      }
-    } else {
-      this.routingRules = null;
-    }
-
-    leader = findLeader();
-  }
-
-
-  private Map<String,Replica> makeReplicas(Map<String,Object> genericReplicas) 
{
-    if (genericReplicas == null) return new HashMap<>(1);
-    Map<String,Replica> result = new LinkedHashMap<>(genericReplicas.size());
-    for (Map.Entry<String,Object> entry : genericReplicas.entrySet()) {
-      String name = entry.getKey();
-      Object val = entry.getValue();
-      Replica r;
-      if (val instanceof Replica) {
-        r = (Replica)val;
-      } else {
-        r = new Replica(name, (Map<String,Object>)val);
-      }
-      result.put(name, r);
-    }
-    return result;
-  }
-
-  private Replica findLeader() {
-    for (Replica replica : replicas.values()) {
-      if (replica.getStr(LEADER) != null) return replica;
-    }
-    return null;
-  }
-
-  /**
-   * Return slice name (shard id).
-   */
-  public String getName() {
-    return name;
-  }
-
-  /**
-   * Gets the list of replicas for this slice.
-   */
-  public Collection<Replica> getReplicas() {
-    return replicas.values();
-  }
-
-  /**
-   * Get the map of coreNodeName to replicas for this slice.
-   */
-  public Map<String, Replica> getReplicasMap() {
-    return replicas;
-  }
-
-  public Map<String,Replica> getReplicasCopy() {
-    return new LinkedHashMap<>(replicas);
-  }
-
-  public Replica getLeader() {
-    return leader;
-  }
-
-  public Replica getReplica(String replicaName) {
-    return replicas.get(replicaName);
-  }
-
-  public DocRouter.Range getRange() {
-    return range;
-  }
-
-  public String getState() {
-    return state;
-  }
-
-  public String getParent() {
-    return parent;
-  }
-
-  public Map<String, RoutingRule> getRoutingRules() {
-    return routingRules;
-  }
-
-  @Override
-  public String toString() {
-    return name + ':' + JSONUtil.toJSON(propMap);
-  }
-
-  @Override
-  public void write(JSONWriter jsonWriter) {
-    jsonWriter.write(propMap);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/SolrZkClient.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/SolrZkClient.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/SolrZkClient.java
deleted file mode 100644
index 00da70b..0000000
--- a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/SolrZkClient.java
+++ /dev/null
@@ -1,736 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.solr.common.SolrException;
-import org.apache.solr.common.StringUtils;
-import org.apache.solr.common.cloud.ZkClientConnectionStrategy.ZkUpdate;
-import org.apache.solr.common.util.ExecutorUtil;
-import org.apache.solr.common.util.ObjectReleaseTracker;
-import org.apache.solr.common.util.SolrjNamedThreadFactory;
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.KeeperException.NoNodeException;
-import org.apache.zookeeper.KeeperException.NodeExistsException;
-import org.apache.zookeeper.KeeperException.NotEmptyException;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.data.ACL;
-import org.apache.zookeeper.data.Stat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-import java.io.Closeable;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * 
- * All Solr ZooKeeper interactions should go through this class rather than
- * ZooKeeper. This class handles synchronous connects and reconnections.
- *
- */
-public class SolrZkClient implements Closeable {
-  
-  static final String NEWL = System.getProperty("line.separator");
-
-  static final int DEFAULT_CLIENT_CONNECT_TIMEOUT = 30000;
-
-  private static final Logger log = LoggerFactory
-      .getLogger(SolrZkClient.class);
-
-  private ConnectionManager connManager;
-
-  private volatile SolrZooKeeper keeper;
-  
-  private ZkCmdExecutor zkCmdExecutor;
-
-  private final ExecutorService zkCallbackExecutor = 
Executors.newCachedThreadPool(new SolrjNamedThreadFactory("zkCallback"));
-
-  private volatile boolean isClosed = false;
-  private ZkClientConnectionStrategy zkClientConnectionStrategy;
-  private int zkClientTimeout;
-  private ZkACLProvider zkACLProvider;
-  private String zkServerAddress;
-
-  public int getZkClientTimeout() {
-    return zkClientTimeout;
-  }
-
-  // expert: for tests
-  public SolrZkClient() {
-    
-  }
-  
-  public SolrZkClient(String zkServerAddress, int zkClientTimeout) {
-    this(zkServerAddress, zkClientTimeout, new DefaultConnectionStrategy(), 
null);
-  }
-  
-  public SolrZkClient(String zkServerAddress, int zkClientTimeout, int 
zkClientConnectTimeout) {
-    this(zkServerAddress, zkClientTimeout, zkClientConnectTimeout, new 
DefaultConnectionStrategy(), null);
-  }
-  
-  public SolrZkClient(String zkServerAddress, int zkClientTimeout, int 
zkClientConnectTimeout, OnReconnect onReonnect) {
-    this(zkServerAddress, zkClientTimeout, zkClientConnectTimeout, new 
DefaultConnectionStrategy(), onReonnect);
-  }
-
-  public SolrZkClient(String zkServerAddress, int zkClientTimeout,
-      ZkClientConnectionStrategy strat, final OnReconnect onReconnect) {
-    this(zkServerAddress, zkClientTimeout, DEFAULT_CLIENT_CONNECT_TIMEOUT, 
strat, onReconnect);
-  }
-  
-  public SolrZkClient(String zkServerAddress, int zkClientTimeout, int 
clientConnectTimeout,
-      ZkClientConnectionStrategy strat, final OnReconnect onReconnect) {
-    this(zkServerAddress, zkClientTimeout, clientConnectTimeout, strat, 
onReconnect, null, null);
-  }
-  
-  public SolrZkClient(String zkServerAddress, int zkClientTimeout, int 
clientConnectTimeout,
-      ZkClientConnectionStrategy strat, final OnReconnect onReconnect, 
BeforeReconnect beforeReconnect) {
-    this(zkServerAddress, zkClientTimeout, clientConnectTimeout, strat, 
onReconnect, beforeReconnect, null);
-  }
-
-  public SolrZkClient(String zkServerAddress, int zkClientTimeout, int 
clientConnectTimeout, 
-      ZkClientConnectionStrategy strat, final OnReconnect onReconnect, 
BeforeReconnect beforeReconnect, ZkACLProvider zkACLProvider) {
-    this.zkClientConnectionStrategy = strat;
-    this.zkServerAddress = zkServerAddress;
-    
-    if (strat == null) {
-      strat = new DefaultConnectionStrategy();
-    }
-    
-    if (!strat.hasZkCredentialsToAddAutomatically()) {
-      ZkCredentialsProvider zkCredentialsToAddAutomatically = 
createZkCredentialsToAddAutomatically();
-      
strat.setZkCredentialsToAddAutomatically(zkCredentialsToAddAutomatically);
-    }
-    
-    this.zkClientTimeout = zkClientTimeout;
-    // we must retry at least as long as the session timeout
-    zkCmdExecutor = new ZkCmdExecutor(zkClientTimeout);
-    connManager = new ConnectionManager("ZooKeeperConnection Watcher:"
-        + zkServerAddress, this, zkServerAddress, strat, onReconnect, 
beforeReconnect);
-
-    try {
-      strat.connect(zkServerAddress, zkClientTimeout, wrapWatcher(connManager),
-          new ZkUpdate() {
-            @Override
-            public void update(SolrZooKeeper zooKeeper) {
-              SolrZooKeeper oldKeeper = keeper;
-              keeper = zooKeeper;
-              try {
-                closeKeeper(oldKeeper);
-              } finally {
-                if (isClosed) {
-                  // we may have been closed
-                  closeKeeper(SolrZkClient.this.keeper);
-                }
-              }
-            }
-          });
-    } catch (Exception e) {
-      connManager.close();
-      if (keeper != null) {
-        try {
-          keeper.close();
-        } catch (InterruptedException e1) {
-          Thread.currentThread().interrupt();
-        }
-      }
-      throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
-    }
-    
-    try {
-      connManager.waitForConnected(clientConnectTimeout);
-    } catch (Exception e) {
-      connManager.close();
-      try {
-        keeper.close();
-      } catch (InterruptedException e1) {
-        Thread.currentThread().interrupt();
-      }
-      throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
-    }
-    assert ObjectReleaseTracker.track(this);
-    if (zkACLProvider == null) {
-      this.zkACLProvider = createZkACLProvider();
-    } else {
-      this.zkACLProvider = zkACLProvider;
-    }
-  }
-
-  public ConnectionManager getConnectionManager() {
-    return connManager;
-  }
-  
-  public ZkClientConnectionStrategy getZkClientConnectionStrategy() {
-    return zkClientConnectionStrategy;
-  }
-
-  public static final String ZK_CRED_PROVIDER_CLASS_NAME_VM_PARAM_NAME = 
"zkCredentialsProvider";
-  protected ZkCredentialsProvider createZkCredentialsToAddAutomatically() {
-    String zkCredentialsProviderClassName = 
System.getProperty(ZK_CRED_PROVIDER_CLASS_NAME_VM_PARAM_NAME);
-    if (!StringUtils.isEmpty(zkCredentialsProviderClassName)) {
-      try {
-        log.info("Using ZkCredentialsProvider: " + 
zkCredentialsProviderClassName);
-        return 
(ZkCredentialsProvider)Class.forName(zkCredentialsProviderClassName).getConstructor().newInstance();
-      } catch (Throwable t) {
-        // just ignore - go default
-        log.warn("VM param zkCredentialsProvider does not point to a class 
implementing ZkCredentialsProvider and with a non-arg constructor", t);
-      }
-    }
-    log.info("Using default ZkCredentialsProvider");
-    return new DefaultZkCredentialsProvider();
-  }
-
-  public static final String ZK_ACL_PROVIDER_CLASS_NAME_VM_PARAM_NAME = 
"zkACLProvider";
-  protected ZkACLProvider createZkACLProvider() {
-    String zkACLProviderClassName = 
System.getProperty(ZK_ACL_PROVIDER_CLASS_NAME_VM_PARAM_NAME);
-    if (!StringUtils.isEmpty(zkACLProviderClassName)) {
-      try {
-        log.info("Using ZkACLProvider: " + zkACLProviderClassName);
-        return 
(ZkACLProvider)Class.forName(zkACLProviderClassName).getConstructor().newInstance();
-      } catch (Throwable t) {
-        // just ignore - go default
-        log.warn("VM param zkACLProvider does not point to a class 
implementing ZkACLProvider and with a non-arg constructor", t);
-      }
-    }
-    log.info("Using default ZkACLProvider");
-    return new DefaultZkACLProvider();
-  }
-  
-  /**
-   * Returns true if client is connected
-   */
-  public boolean isConnected() {
-    return keeper != null && keeper.getState() == ZooKeeper.States.CONNECTED;
-  }
-  
-  public void delete(final String path, final int version, boolean 
retryOnConnLoss)
-      throws InterruptedException, KeeperException {
-    if (retryOnConnLoss) {
-      zkCmdExecutor.retryOperation(new ZkOperation() {
-        @Override
-        public Stat execute() throws KeeperException, InterruptedException {
-          keeper.delete(path, version);
-          return null;
-        }
-      });
-    } else {
-      keeper.delete(path, version);
-    }
-  }
-
-  private Watcher wrapWatcher (final Watcher watcher) {
-    if (watcher == null) return watcher;
-
-    // wrap the watcher so that it doesn't fire off ZK's event queue
-    return new Watcher() {
-      @Override
-      public void process(final WatchedEvent event) {
-        log.debug("Submitting job to respond to event " + event);
-        zkCallbackExecutor.submit(new Runnable () {
-          @Override
-          public void run () {
-            watcher.process(event);
-          }
-        });
-      }
-    };
-  }
-
-  /**
-   * Return the stat of the node of the given path. Return null if no such a
-   * node exists.
-   * <p>
-   * If the watch is non-null and the call is successful (no exception is 
thrown),
-   * a watch will be left on the node with the given path. The watch will be
-   * triggered by a successful operation that creates/delete the node or sets
-   * the data on the node.
-   *
-   * @param path the node path
-   * @param watcher explicit watcher
-   * @return the stat of the node of the given path; return null if no such a
-   *         node exists.
-   * @throws KeeperException If the server signals an error
-   * @throws InterruptedException If the server transaction is interrupted.
-   * @throws IllegalArgumentException if an invalid path is specified
-   */
-  public Stat exists(final String path, final Watcher watcher, boolean 
retryOnConnLoss)
-      throws KeeperException, InterruptedException {
-    if (retryOnConnLoss) {
-      return zkCmdExecutor.retryOperation(new ZkOperation() {
-        @Override
-        public Stat execute() throws KeeperException, InterruptedException {
-          return keeper.exists(path, wrapWatcher(watcher));
-        }
-      });
-    } else {
-      return keeper.exists(path, wrapWatcher(watcher));
-    }
-  }
-  
-  /**
-   * Returns true if path exists
-   */
-  public Boolean exists(final String path, boolean retryOnConnLoss)
-      throws KeeperException, InterruptedException {
-    if (retryOnConnLoss) {
-      return zkCmdExecutor.retryOperation(new ZkOperation() {
-        @Override
-        public Boolean execute() throws KeeperException, InterruptedException {
-          return keeper.exists(path, null) != null;
-        }
-      });
-    } else {
-      return keeper.exists(path, null) != null;
-    }
-  }
-
-  /**
-   * Returns children of the node at the path
-   */
-  public List<String> getChildren(final String path, final Watcher watcher, 
boolean retryOnConnLoss)
-      throws KeeperException, InterruptedException {
-    if (retryOnConnLoss) {
-      return zkCmdExecutor.retryOperation(new ZkOperation() {
-        @Override
-        public List<String> execute() throws KeeperException, 
InterruptedException {
-          return keeper.getChildren(path, wrapWatcher(watcher));
-        }
-      });
-    } else {
-      return keeper.getChildren(path, wrapWatcher(watcher));
-    }
-  }
-
-  /**
-   * Returns node's data
-   */
-  public byte[] getData(final String path, final Watcher watcher, final Stat 
stat, boolean retryOnConnLoss)
-      throws KeeperException, InterruptedException {
-    if (retryOnConnLoss) {
-      return zkCmdExecutor.retryOperation(new ZkOperation() {
-        @Override
-        public byte[] execute() throws KeeperException, InterruptedException {
-          return keeper.getData(path, wrapWatcher(watcher), stat);
-        }
-      });
-    } else {
-      return keeper.getData(path, wrapWatcher(watcher), stat);
-    }
-  }
-
-  /**
-   * Returns node's state
-   */
-  public Stat setData(final String path, final byte data[], final int version, 
boolean retryOnConnLoss)
-      throws KeeperException, InterruptedException {
-    if (retryOnConnLoss) {
-      return zkCmdExecutor.retryOperation(new ZkOperation() {
-        @Override
-        public Stat execute() throws KeeperException, InterruptedException {
-          return keeper.setData(path, data, version);
-        }
-      });
-    } else {
-      return keeper.setData(path, data, version);
-    }
-  }
-  
-  /**
-   * Returns path of created node
-   */
-  public String create(final String path, final byte[] data,
-      final CreateMode createMode, boolean retryOnConnLoss) throws 
KeeperException,
-      InterruptedException {
-    if (retryOnConnLoss) {
-      return zkCmdExecutor.retryOperation(new ZkOperation() {
-        @Override
-        public String execute() throws KeeperException, InterruptedException {
-          return keeper.create(path, data, zkACLProvider.getACLsToAdd(path),
-              createMode);
-        }
-      });
-    } else {
-      List<ACL> acls = zkACLProvider.getACLsToAdd(path);
-      return keeper.create(path, data, acls, createMode);
-    }
-  }
-
-  /**
-   * Creates the path in ZooKeeper, creating each node as necessary.
-   * 
-   * e.g. If <code>path=/solr/group/node</code> and none of the nodes, solr,
-   * group, node exist, each will be created.
-   */
-  public void makePath(String path, boolean retryOnConnLoss) throws 
KeeperException,
-      InterruptedException {
-    makePath(path, null, CreateMode.PERSISTENT, retryOnConnLoss);
-  }
-  
-  public void makePath(String path, boolean failOnExists, boolean 
retryOnConnLoss) throws KeeperException,
-      InterruptedException {
-    makePath(path, null, CreateMode.PERSISTENT, null, failOnExists, 
retryOnConnLoss);
-  }
-  
-  public void makePath(String path, File file, boolean failOnExists, boolean 
retryOnConnLoss)
-      throws IOException, KeeperException, InterruptedException {
-    makePath(path, FileUtils.readFileToByteArray(file),
-        CreateMode.PERSISTENT, null, failOnExists, retryOnConnLoss);
-  }
-  
-  public void makePath(String path, File file, boolean retryOnConnLoss) throws 
IOException,
-      KeeperException, InterruptedException {
-    makePath(path, FileUtils.readFileToByteArray(file), retryOnConnLoss);
-  }
-  
-  public void makePath(String path, CreateMode createMode, boolean 
retryOnConnLoss) throws KeeperException,
-      InterruptedException {
-    makePath(path, null, createMode, retryOnConnLoss);
-  }
-
-  /**
-   * Creates the path in ZooKeeper, creating each node as necessary.
-   * 
-   * @param data to set on the last zkNode
-   */
-  public void makePath(String path, byte[] data, boolean retryOnConnLoss) 
throws KeeperException,
-      InterruptedException {
-    makePath(path, data, CreateMode.PERSISTENT, retryOnConnLoss);
-  }
-
-  /**
-   * Creates the path in ZooKeeper, creating each node as necessary.
-   * 
-   * e.g. If <code>path=/solr/group/node</code> and none of the nodes, solr,
-   * group, node exist, each will be created.
-   * 
-   * @param data to set on the last zkNode
-   */
-  public void makePath(String path, byte[] data, CreateMode createMode, 
boolean retryOnConnLoss)
-      throws KeeperException, InterruptedException {
-    makePath(path, data, createMode, null, retryOnConnLoss);
-  }
-
-  /**
-   * Creates the path in ZooKeeper, creating each node as necessary.
-   * 
-   * e.g. If <code>path=/solr/group/node</code> and none of the nodes, solr,
-   * group, node exist, each will be created.
-   * 
-   * @param data to set on the last zkNode
-   */
-  public void makePath(String path, byte[] data, CreateMode createMode,
-      Watcher watcher, boolean retryOnConnLoss) throws KeeperException, 
InterruptedException {
-    makePath(path, data, createMode, watcher, true, retryOnConnLoss);
-  }
-  
-
-
-  /**
-   * Creates the path in ZooKeeper, creating each node as necessary.
-   * 
-   * e.g. If <code>path=/solr/group/node</code> and none of the nodes, solr,
-   * group, node exist, each will be created.
-   * 
-   * Note: retryOnConnLoss is only respected for the final node - nodes
-   * before that are always retried on connection loss.
-   */
-  public void makePath(String path, byte[] data, CreateMode createMode,
-      Watcher watcher, boolean failOnExists, boolean retryOnConnLoss) throws 
KeeperException, InterruptedException {
-    if (log.isInfoEnabled()) {
-      log.info("makePath: " + path);
-    }
-    boolean retry = true;
-    
-    if (path.startsWith("/")) {
-      path = path.substring(1, path.length());
-    }
-    String[] paths = path.split("/");
-    StringBuilder sbPath = new StringBuilder();
-    for (int i = 0; i < paths.length; i++) {
-      byte[] bytes = null;
-      String pathPiece = paths[i];
-      sbPath.append("/" + pathPiece);
-      final String currentPath = sbPath.toString();
-      Object exists = exists(currentPath, watcher, retryOnConnLoss);
-      if (exists == null || ((i == paths.length -1) && failOnExists)) {
-        CreateMode mode = CreateMode.PERSISTENT;
-        if (i == paths.length - 1) {
-          mode = createMode;
-          bytes = data;
-          if (!retryOnConnLoss) retry = false;
-        }
-        try {
-          if (retry) {
-            final CreateMode finalMode = mode;
-            final byte[] finalBytes = bytes;
-            zkCmdExecutor.retryOperation(new ZkOperation() {
-              @Override
-              public Object execute() throws KeeperException, 
InterruptedException {
-                keeper.create(currentPath, finalBytes, 
zkACLProvider.getACLsToAdd(currentPath), finalMode);
-                return null;
-              }
-            });
-          } else {
-            keeper.create(currentPath, bytes, 
zkACLProvider.getACLsToAdd(currentPath), mode);
-          }
-        } catch (NodeExistsException e) {
-          
-          if (!failOnExists) {
-            // TODO: version ? for now, don't worry about race
-            setData(currentPath, data, -1, retryOnConnLoss);
-            // set new watch
-            exists(currentPath, watcher, retryOnConnLoss);
-            return;
-          }
-          
-          // ignore unless it's the last node in the path
-          if (i == paths.length - 1) {
-            throw e;
-          }
-        }
-        if(i == paths.length -1) {
-          // set new watch
-          exists(currentPath, watcher, retryOnConnLoss);
-        }
-      } else if (i == paths.length - 1) {
-        // TODO: version ? for now, don't worry about race
-        setData(currentPath, data, -1, retryOnConnLoss);
-        // set new watch
-        exists(currentPath, watcher, retryOnConnLoss);
-      }
-    }
-  }
-
-  public void makePath(String zkPath, CreateMode createMode, Watcher watcher, 
boolean retryOnConnLoss)
-      throws KeeperException, InterruptedException {
-    makePath(zkPath, null, createMode, watcher, retryOnConnLoss);
-  }
-
-  /**
-   * Write data to ZooKeeper.
-   */
-  public Stat setData(String path, byte[] data, boolean retryOnConnLoss) 
throws KeeperException,
-      InterruptedException {
-    return setData(path, data, -1, retryOnConnLoss);
-  }
-
-  /**
-   * Write file to ZooKeeper - default system encoding used.
-   * 
-   * @param path path to upload file to e.g. /solr/conf/solrconfig.xml
-   * @param file path to file to be uploaded
-   */
-  public Stat setData(String path, File file, boolean retryOnConnLoss) throws 
IOException,
-      KeeperException, InterruptedException {
-    if (log.isInfoEnabled()) {
-      log.info("Write to ZooKeepeer " + file.getAbsolutePath() + " to " + 
path);
-    }
-
-    byte[] data = FileUtils.readFileToByteArray(file);
-    return setData(path, data, retryOnConnLoss);
-  }
-
-  /**
-   * Fills string with printout of current ZooKeeper layout.
-   */
-  public void printLayout(String path, int indent, StringBuilder string)
-      throws KeeperException, InterruptedException {
-    byte[] data = getData(path, null, null, true);
-    List<String> children = getChildren(path, null, true);
-    StringBuilder dent = new StringBuilder();
-    for (int i = 0; i < indent; i++) {
-      dent.append(" ");
-    }
-    string.append(dent + path + " (" + children.size() + ")" + NEWL);
-    if (data != null) {
-      String dataString = new String(data, StandardCharsets.UTF_8);
-      if ((!path.endsWith(".txt") && !path.endsWith(".xml")) || 
path.endsWith(ZkStateReader.CLUSTER_STATE)) {
-        if (path.endsWith(".xml")) {
-          // this is the cluster state in xml format - lets pretty print
-          dataString = prettyPrint(dataString);
-        }
-        
-        string.append(dent + "DATA:\n" + dent + "    "
-            + dataString.replaceAll("\n", "\n" + dent + "    ") + NEWL);
-      } else {
-        string.append(dent + "DATA: ...supressed..." + NEWL);
-      }
-    }
-
-    for (String child : children) {
-      if (!child.equals("quota")) {
-        try {
-          printLayout(path + (path.equals("/") ? "" : "/") + child, indent + 1,
-              string);
-        } catch (NoNodeException e) {
-          // must have gone away
-        }
-      }
-    }
-
-  }
-
-  /**
-   * Prints current ZooKeeper layout to stdout.
-   */
-  public void printLayoutToStdOut() throws KeeperException,
-      InterruptedException {
-    StringBuilder sb = new StringBuilder();
-    printLayout("/", 0, sb);
-    System.out.println(sb.toString());
-  }
-  
-  public static String prettyPrint(String input, int indent) {
-    try {
-      Source xmlInput = new StreamSource(new StringReader(input));
-      StringWriter stringWriter = new StringWriter();
-      StreamResult xmlOutput = new StreamResult(stringWriter);
-      TransformerFactory transformerFactory = TransformerFactory.newInstance();
-      transformerFactory.setAttribute("indent-number", indent);
-      Transformer transformer = transformerFactory.newTransformer();
-      transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-      transformer.transform(xmlInput, xmlOutput);
-      return xmlOutput.getWriter().toString();
-    } catch (Exception e) {
-      throw new RuntimeException("Problem pretty printing XML", e);
-    }
-  }
-  
-  private static String prettyPrint(String input) {
-    return prettyPrint(input, 2);
-  }
-
-  public void close() {
-    if (isClosed) return; // it's okay if we over close - same as solrcore
-    isClosed = true;
-    try {
-      closeKeeper(keeper);
-    } finally {
-      connManager.close();
-      closeCallbackExecutor();
-    }
-    assert ObjectReleaseTracker.release(this);
-  }
-
-  public boolean isClosed() {
-    return isClosed;
-  }
-
-  /**
-   * Allows package private classes to update volatile ZooKeeper.
-   */
-  void updateKeeper(SolrZooKeeper keeper) throws InterruptedException {
-   SolrZooKeeper oldKeeper = this.keeper;
-   this.keeper = keeper;
-   if (oldKeeper != null) {
-     oldKeeper.close();
-   }
-   // we might have been closed already
-   if (isClosed) this.keeper.close();
-  }
-  
-  public SolrZooKeeper getSolrZooKeeper() {
-    return keeper;
-  }
-  
-  private void closeKeeper(SolrZooKeeper keeper) {
-    if (keeper != null) {
-      try {
-        keeper.close();
-      } catch (InterruptedException e) {
-        // Restore the interrupted status
-        Thread.currentThread().interrupt();
-        log.error("", e);
-        throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR, "",
-            e);
-      }
-    }
-  }
-
-  private void closeCallbackExecutor() {
-    try {
-      ExecutorUtil.shutdownAndAwaitTermination(zkCallbackExecutor);
-    } catch (Exception e) {
-      SolrException.log(log, e);
-    }
-  }
-
-  // yeah, it's recursive :(
-  public void clean(String path) throws InterruptedException, KeeperException {
-    List<String> children;
-    try {
-      children = getChildren(path, null, true);
-    } catch (NoNodeException r) {
-      return;
-    }
-    for (String string : children) {
-      // we can't clean the built-in zookeeper node
-      if (path.equals("/") && string.equals("zookeeper")) continue;
-      if (path.equals("/")) {
-        clean(path + string);
-      } else {
-        clean(path + "/" + string);
-      }
-    }
-    try {
-      if (!path.equals("/")) {
-        try {
-          delete(path, -1, true);
-        } catch (NotEmptyException e) {
-          clean(path);
-        }
-      }
-    } catch (NoNodeException r) {
-      return;
-    }
-  }
-  
-  /**
-   * Validates if zkHost contains a chroot. See 
http://zookeeper.apache.org/doc/r3.2.2/zookeeperProgrammers.html#ch_zkSessions
-   */
-  public static boolean containsChroot(String zkHost) {
-    return zkHost.contains("/");
-  }
-
-  /**
-   * Check to see if a Throwable is an InterruptedException, and if it is, set 
the thread interrupt flag
-   * @param e the Throwable
-   * @return the Throwable
-   */
-  public static Throwable checkInterrupted(Throwable e) {
-    if (e instanceof InterruptedException)
-      Thread.interrupted();
-    return e;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/SolrZooKeeper.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/SolrZooKeeper.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/SolrZooKeeper.java
deleted file mode 100644
index b83c692..0000000
--- a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/SolrZooKeeper.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.SocketAddress;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.apache.zookeeper.ClientCnxn;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.ZooKeeper;
-
-// we use this class to expose nasty stuff for tests
-public class SolrZooKeeper extends ZooKeeper {
-  final Set<Thread> spawnedThreads = new CopyOnWriteArraySet<>();
-  
-  // for test debug
-  //static Map<SolrZooKeeper,Exception> clients = new 
ConcurrentHashMap<SolrZooKeeper,Exception>();
-
-  public SolrZooKeeper(String connectString, int sessionTimeout,
-      Watcher watcher) throws IOException {
-    super(connectString, sessionTimeout, watcher);
-    //clients.put(this, new RuntimeException());
-  }
-  
-  public ClientCnxn getConnection() {
-    return cnxn;
-  }
-  
-  public SocketAddress getSocketAddress() {
-    return testableLocalSocketAddress();
-  }
-  
-  public void closeCnxn() {
-    final Thread t = new Thread() {
-      @Override
-      public void run() {
-        try {
-          final ClientCnxn cnxn = getConnection();
-          synchronized (cnxn) {
-            try {
-              final Field sendThreadFld = 
cnxn.getClass().getDeclaredField("sendThread");
-              sendThreadFld.setAccessible(true);
-              Object sendThread = sendThreadFld.get(cnxn);
-              if (sendThread != null) {
-                Method method = 
sendThread.getClass().getDeclaredMethod("testableCloseSocket");
-                method.setAccessible(true);
-                try {
-                  method.invoke(sendThread);
-                } catch (InvocationTargetException e) {
-                  // is fine
-                }
-              }
-            } catch (Exception e) {
-              throw new RuntimeException("Closing Zookeeper send channel 
failed.", e);
-            }
-          }
-        } finally {
-          spawnedThreads.remove(this);
-        }
-      }
-    };
-    spawnedThreads.add(t);
-    t.start();
-  }
-
-  @Override
-  public synchronized void close() throws InterruptedException {
-    for (Thread t : spawnedThreads) {
-      if (t.isAlive()) t.interrupt();
-    }
-    super.close();
-  }
-  
-//  public static void assertCloses() {
-//    if (clients.size() > 0) {
-//      Iterator<Exception> stacktraces = clients.values().iterator();
-//      Exception cause = null;
-//      cause = stacktraces.next();
-//      throw new RuntimeException("Found a bad one!", cause);
-//    }
-//  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/VMParamsAllAndReadonlyDigestZkACLProvider.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/VMParamsAllAndReadonlyDigestZkACLProvider.java
 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/VMParamsAllAndReadonlyDigestZkACLProvider.java
deleted file mode 100644
index 1c3c6ca..0000000
--- 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/VMParamsAllAndReadonlyDigestZkACLProvider.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.solr.common.StringUtils;
-import org.apache.zookeeper.ZooDefs;
-import org.apache.zookeeper.data.ACL;
-import org.apache.zookeeper.data.Id;
-import org.apache.zookeeper.server.auth.DigestAuthenticationProvider;
-
-
-public class VMParamsAllAndReadonlyDigestZkACLProvider extends 
DefaultZkACLProvider {
-
-  public static final String DEFAULT_DIGEST_READONLY_USERNAME_VM_PARAM_NAME = 
"zkDigestReadonlyUsername";
-  public static final String DEFAULT_DIGEST_READONLY_PASSWORD_VM_PARAM_NAME = 
"zkDigestReadonlyPassword";
-  
-  final String zkDigestAllUsernameVMParamName;
-  final String zkDigestAllPasswordVMParamName;
-  final String zkDigestReadonlyUsernameVMParamName;
-  final String zkDigestReadonlyPasswordVMParamName;
-  
-  public VMParamsAllAndReadonlyDigestZkACLProvider() {
-    this(
-        
VMParamsSingleSetCredentialsDigestZkCredentialsProvider.DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME,
 
-        
VMParamsSingleSetCredentialsDigestZkCredentialsProvider.DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME,
-        DEFAULT_DIGEST_READONLY_USERNAME_VM_PARAM_NAME,
-        DEFAULT_DIGEST_READONLY_PASSWORD_VM_PARAM_NAME
-        );
-  }
-  
-  public VMParamsAllAndReadonlyDigestZkACLProvider(String 
zkDigestAllUsernameVMParamName, String zkDigestAllPasswordVMParamName,
-      String zkDigestReadonlyUsernameVMParamName, String 
zkDigestReadonlyPasswordVMParamName) {
-    this.zkDigestAllUsernameVMParamName = zkDigestAllUsernameVMParamName;
-    this.zkDigestAllPasswordVMParamName = zkDigestAllPasswordVMParamName;
-    this.zkDigestReadonlyUsernameVMParamName = 
zkDigestReadonlyUsernameVMParamName;
-    this.zkDigestReadonlyPasswordVMParamName = 
zkDigestReadonlyPasswordVMParamName;
-  }
-
-
-  @Override
-  protected List<ACL> createGlobalACLsToAdd() {
-    try {
-      List<ACL> result = new ArrayList<ACL>();
-  
-      // Not to have to provide too much credentials and ACL information to 
the process it is assumed that you want "ALL"-acls
-      // added to the user you are using to connect to ZK (if you are using 
VMParamsSingleSetCredentialsDigestZkCredentialsProvider)
-      String digestAllUsername = 
System.getProperty(zkDigestAllUsernameVMParamName);
-      String digestAllPassword = 
System.getProperty(zkDigestAllPasswordVMParamName);
-      if (!StringUtils.isEmpty(digestAllUsername) && 
!StringUtils.isEmpty(digestAllPassword)) {
-        result.add(new ACL(ZooDefs.Perms.ALL, new Id("digest", 
DigestAuthenticationProvider.generateDigest(digestAllUsername + ":" + 
digestAllPassword))));
-      }
-  
-      // Besides that support for adding additional "READONLY"-acls for 
another user
-      String digestReadonlyUsername = 
System.getProperty(zkDigestReadonlyUsernameVMParamName);
-      String digestReadonlyPassword = 
System.getProperty(zkDigestReadonlyPasswordVMParamName);
-      if (!StringUtils.isEmpty(digestReadonlyUsername) && 
!StringUtils.isEmpty(digestReadonlyPassword)) {
-        result.add(new ACL(ZooDefs.Perms.READ, new Id("digest", 
DigestAuthenticationProvider.generateDigest(digestReadonlyUsername + ":" + 
digestReadonlyPassword))));
-      }
-      
-      if (result.isEmpty()) {
-        result = super.createGlobalACLsToAdd();
-      }
-      
-      return result;
-    } catch (NoSuchAlgorithmException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/VMParamsSingleSetCredentialsDigestZkCredentialsProvider.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/VMParamsSingleSetCredentialsDigestZkCredentialsProvider.java
 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/VMParamsSingleSetCredentialsDigestZkCredentialsProvider.java
deleted file mode 100644
index f71e2ec..0000000
--- 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/VMParamsSingleSetCredentialsDigestZkCredentialsProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.solr.common.StringUtils;
-
-public class VMParamsSingleSetCredentialsDigestZkCredentialsProvider extends 
DefaultZkCredentialsProvider {
-  
-  public static final String DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME = 
"zkDigestUsername";
-  public static final String DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME = 
"zkDigestPassword";
-  
-  final String zkDigestUsernameVMParamName;
-  final String zkDigestPasswordVMParamName;
-  
-  public VMParamsSingleSetCredentialsDigestZkCredentialsProvider() {
-    this(DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME, 
DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME);
-  }
-  
-  public VMParamsSingleSetCredentialsDigestZkCredentialsProvider(String 
zkDigestUsernameVMParamName, String zkDigestPasswordVMParamName) {
-    this.zkDigestUsernameVMParamName = zkDigestUsernameVMParamName;
-    this.zkDigestPasswordVMParamName = zkDigestPasswordVMParamName;
-  }
-
-  @Override
-  protected Collection<ZkCredentials> createCredentials() {
-    List<ZkCredentials> result = new ArrayList<ZkCredentials>();
-    String digestUsername = System.getProperty(zkDigestUsernameVMParamName);
-    String digestPassword = System.getProperty(zkDigestPasswordVMParamName);
-    if (!StringUtils.isEmpty(digestUsername) && 
!StringUtils.isEmpty(digestPassword)) {
-      try {
-        result.add(new ZkCredentials("digest", (digestUsername + ":" + 
digestPassword).getBytes("UTF-8")));
-      } catch (UnsupportedEncodingException e) {
-        throw new RuntimeException(e);
-      }
-    }
-    return result;
-  }
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkACLProvider.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkACLProvider.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkACLProvider.java
deleted file mode 100644
index 7cff190..0000000
--- a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkACLProvider.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import java.util.List;
-
-import org.apache.zookeeper.data.ACL;
-
-public interface ZkACLProvider {
-  
-  List<ACL> getACLsToAdd(String zNodePath);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkClientConnectionStrategy.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkClientConnectionStrategy.java
 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkClientConnectionStrategy.java
deleted file mode 100644
index 54c0e25..0000000
--- 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkClientConnectionStrategy.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.TimeoutException;
-
-import org.apache.solr.common.SolrException;
-import org.apache.solr.common.cloud.ZkCredentialsProvider.ZkCredentials;
-import org.apache.zookeeper.Watcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- */
-public abstract class ZkClientConnectionStrategy {
-  private static Logger log = 
LoggerFactory.getLogger(ZkClientConnectionStrategy.class);
-  
-  private volatile ZkCredentialsProvider zkCredentialsToAddAutomatically;
-  private volatile boolean zkCredentialsToAddAutomaticallyUsed;
-  
-  private List<DisconnectedListener> disconnectedListeners = new ArrayList<>();
-  private List<ConnectedListener> connectedListeners = new ArrayList<>();
-  
-  public abstract void connect(String zkServerAddress, int zkClientTimeout, 
Watcher watcher, ZkUpdate updater) throws IOException, InterruptedException, 
TimeoutException;
-  public abstract void reconnect(String serverAddress, int zkClientTimeout, 
Watcher watcher, ZkUpdate updater) throws IOException, InterruptedException, 
TimeoutException;
-  
-  public ZkClientConnectionStrategy() {
-    zkCredentialsToAddAutomaticallyUsed = false;
-  }
-  
-  public synchronized void disconnected() {
-    for (DisconnectedListener listener : disconnectedListeners) {
-      try {
-        listener.disconnected();
-      } catch (Exception e) {
-        SolrException.log(log, "", e);
-      }
-    }
-  }
-  
-  public synchronized void connected() {
-    for (ConnectedListener listener : connectedListeners) {
-      try {
-        listener.connected();
-      } catch (Exception e) {
-        SolrException.log(log, "", e);
-      }
-    }
-  }
-  
-  public interface DisconnectedListener {
-    public void disconnected();
-  };
-  
-  public interface ConnectedListener {
-    public void connected();
-  };
-  
-  
-  public synchronized void addDisconnectedListener(DisconnectedListener 
listener) {
-    disconnectedListeners.add(listener);
-  }
-  
-  public synchronized void addConnectedListener(ConnectedListener listener) {
-    connectedListeners.add(listener);
-  }
-  
-  public static abstract class ZkUpdate {
-    public abstract void update(SolrZooKeeper zooKeeper) throws 
InterruptedException, TimeoutException, IOException;
-  }
-  
-  public void setZkCredentialsToAddAutomatically(ZkCredentialsProvider 
zkCredentialsToAddAutomatically) {
-    if (zkCredentialsToAddAutomaticallyUsed || 
(zkCredentialsToAddAutomatically == null)) 
-      throw new RuntimeException("Cannot change 
zkCredentialsToAddAutomatically after it has been (connect or reconnect was 
called) used or to null");
-    this.zkCredentialsToAddAutomatically = zkCredentialsToAddAutomatically;
-  }
-  
-  public boolean hasZkCredentialsToAddAutomatically() {
-    return zkCredentialsToAddAutomatically != null;
-  }
-  
-  protected SolrZooKeeper createSolrZooKeeper(final String serverAddress, 
final int zkClientTimeout,
-      final Watcher watcher) throws IOException {
-    SolrZooKeeper result = new SolrZooKeeper(serverAddress, zkClientTimeout, 
watcher);
-    
-    zkCredentialsToAddAutomaticallyUsed = true;
-    for (ZkCredentials zkCredentials : 
zkCredentialsToAddAutomatically.getCredentials()) {
-      result.addAuthInfo(zkCredentials.getScheme(), zkCredentials.getAuth());
-    }
-
-    return result;
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCmdExecutor.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCmdExecutor.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCmdExecutor.java
deleted file mode 100644
index c027cf2..0000000
--- a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCmdExecutor.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.KeeperException.NodeExistsException;
-
-
-public class ZkCmdExecutor {
-  private long retryDelay = 1500L; // 1 second would match timeout, so 500 ms 
over for padding
-  private int retryCount;
-  private double timeouts;
-  
-  /**
-   * TODO: At this point, this should probably take a SolrZkClient in
-   * its constructor.
-   * 
-   * @param timeoutms
-   *          the client timeout for the ZooKeeper clients that will be used
-   *          with this class.
-   */
-  public ZkCmdExecutor(int timeoutms) {
-    timeouts = timeoutms / 1000.0;
-    this.retryCount = Math.round(0.5f * ((float)Math.sqrt(8.0f * timeouts + 
1.0f) - 1.0f)) + 1;
-  }
-  
-  public long getRetryDelay() {
-    return retryDelay;
-  }
-  
-  public void setRetryDelay(long retryDelay) {
-    this.retryDelay = retryDelay;
-  }
-  
-
-  /**
-   * Perform the given operation, retrying if the connection fails
-   */
-  @SuppressWarnings("unchecked")
-  public <T> T retryOperation(ZkOperation operation)
-      throws KeeperException, InterruptedException {
-    KeeperException exception = null;
-    for (int i = 0; i < retryCount; i++) {
-      try {
-        return (T) operation.execute();
-      } catch (KeeperException.ConnectionLossException e) {
-        if (exception == null) {
-          exception = e;
-        }
-        if (Thread.currentThread().isInterrupted()) {
-          Thread.currentThread().interrupt();
-          throw new InterruptedException();
-        }
-        if (Thread.currentThread() instanceof ClosableThread) {
-          if (((ClosableThread) Thread.currentThread()).isClosed()) {
-            throw exception;
-          }
-        }
-        if (i != retryCount -1) {
-          retryDelay(i);
-        }
-      }
-    }
-    throw exception;
-  }
-  
-  public void ensureExists(String path, final SolrZkClient zkClient) throws 
KeeperException, InterruptedException {
-    ensureExists(path, null, CreateMode.PERSISTENT, zkClient);
-  }
-  
-  public void ensureExists(final String path, final byte[] data,
-      CreateMode createMode, final SolrZkClient zkClient) throws 
KeeperException, InterruptedException {
-    
-    if (zkClient.exists(path, true)) {
-      return;
-    }
-    try {
-      zkClient.makePath(path, data, true);
-    } catch (NodeExistsException e) {
-      // it's okay if another beats us creating the node
-    }
-    
-  }
-  
-  /**
-   * Performs a retry delay if this is not the first attempt
-   * 
-   * @param attemptCount
-   *          the number of the attempts performed so far
-   */
-  protected void retryDelay(int attemptCount) throws InterruptedException {
-    Thread.sleep((attemptCount + 1) * retryDelay);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkConfigManager.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkConfigManager.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkConfigManager.java
deleted file mode 100644
index a3a8060..0000000
--- 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkConfigManager.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import org.apache.zookeeper.KeeperException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Class that manages named configs in Zookeeper
- */
-public class ZkConfigManager {
-
-  private static final Logger logger = 
LoggerFactory.getLogger(ZkConfigManager.class);
-
-  /** ZkNode where named configs are stored */
-  public static final String CONFIGS_ZKNODE = "/configs";
-
-  private final SolrZkClient zkClient;
-
-  /**
-   * Creates a new ZkConfigManager
-   * @param zkClient the {@link SolrZkClient} to use
-   */
-  public ZkConfigManager(SolrZkClient zkClient) {
-    this.zkClient = zkClient;
-  }
-
-  private void uploadToZK(final Path rootPath, final String zkPath) throws 
IOException {
-
-    if (!Files.exists(rootPath))
-      throw new IOException("Path " + rootPath + " does not exist");
-
-    Files.walkFileTree(rootPath, new SimpleFileVisitor<Path>(){
-      @Override
-      public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) 
throws IOException {
-        String filename = file.getFileName().toString();
-        if (filename.startsWith("."))
-          return FileVisitResult.CONTINUE;
-        String zkNode = createZkNodeName(zkPath, rootPath, file);
-        try {
-          zkClient.makePath(zkNode, file.toFile(), false, true);
-        } catch (KeeperException | InterruptedException e) {
-          throw new IOException("Error uploading file " + file.toString() + " 
to zookeeper path " + zkNode,
-              SolrZkClient.checkInterrupted(e));
-        }
-        return FileVisitResult.CONTINUE;
-      }
-
-      @Override
-      public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes 
attrs) throws IOException {
-        return (dir.getFileName().toString().startsWith(".")) ? 
FileVisitResult.SKIP_SUBTREE : FileVisitResult.CONTINUE;
-      }
-    });
-  }
-
-  private static String createZkNodeName(String zkRoot, Path root, Path file) {
-    String relativePath = root.relativize(file).toString();
-    // Windows shenanigans
-    String separator = root.getFileSystem().getSeparator();
-    if ("\\".equals(separator))
-      relativePath = relativePath.replaceAll("\\\\", "/");
-    return zkRoot + "/" + relativePath;
-  }
-
-  private void downloadFromZK(String zkPath, Path dir) throws IOException {
-    try {
-      List<String> files = zkClient.getChildren(zkPath, null, true);
-      Files.createDirectories(dir);
-      for (String file : files) {
-        List<String> children = zkClient.getChildren(zkPath + "/" + file, 
null, true);
-        if (children.size() == 0) {
-          byte[] data = zkClient.getData(zkPath + "/" + file, null, null, 
true);
-          Path filename = dir.resolve(file);
-          logger.info("Writing file {}", filename);
-          Files.write(filename, data);
-        } else {
-          downloadFromZK(zkPath + "/" + file, dir.resolve(file));
-        }
-      }
-    }
-    catch (KeeperException | InterruptedException e) {
-      throw new IOException("Error downloading files from zookeeper path " + 
zkPath + " to " + dir.toString(),
-          SolrZkClient.checkInterrupted(e));
-    }
-  }
-
-  /**
-   * Upload files from a given path to a config in Zookeeper
-   * @param dir         {@link java.nio.file.Path} to the files
-   * @param configName  the name to give the config
-   * @throws IOException
-   *                    if an I/O error occurs or the path does not exist
-   */
-  public void uploadConfigDir(Path dir, String configName) throws IOException {
-    uploadToZK(dir, CONFIGS_ZKNODE + "/" + configName);
-  }
-
-  /**
-   * Download a config from Zookeeper and write it to the filesystem
-   * @param configName  the config to download
-   * @param dir         the {@link Path} to write files under
-   * @throws IOException
-   *                    if an I/O error occurs or the config does not exist
-   */
-  public void downloadConfigDir(String configName, Path dir) throws 
IOException {
-    downloadFromZK(CONFIGS_ZKNODE + "/" + configName, dir);
-  }
-
-  public List<String> listConfigs() throws IOException {
-    try {
-      return zkClient.getChildren(ZkConfigManager.CONFIGS_ZKNODE, null, true);
-    }
-    catch (KeeperException.NoNodeException e) {
-      return Collections.emptyList();
-    }
-    catch (KeeperException | InterruptedException e) {
-      throw new IOException("Error listing configs", 
SolrZkClient.checkInterrupted(e));
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCoreNodeProps.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCoreNodeProps.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCoreNodeProps.java
deleted file mode 100644
index 3031087..0000000
--- 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCoreNodeProps.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-public class ZkCoreNodeProps {
-  private ZkNodeProps nodeProps;
-  
-  public ZkCoreNodeProps(ZkNodeProps nodeProps) {
-    this.nodeProps = nodeProps;
-  }
-  
-  public String getCoreUrl() {
-    return getCoreUrl(nodeProps.getStr(ZkStateReader.BASE_URL_PROP), 
nodeProps.getStr(ZkStateReader.CORE_NAME_PROP));
-  }
-  
-  public String getNodeName() {
-    return nodeProps.getStr(ZkStateReader.NODE_NAME_PROP);
-  }
-
-  public String getState() {
-    return nodeProps.getStr(ZkStateReader.STATE_PROP);
-  }
-
-  public String getBaseUrl() {
-    return nodeProps.getStr(ZkStateReader.BASE_URL_PROP);
-  }
-  
-  public String getCoreName() {
-    return nodeProps.getStr(ZkStateReader.CORE_NAME_PROP);
-  }
-  
-  public static String getCoreUrl(ZkNodeProps nodeProps) {
-    return getCoreUrl(nodeProps.getStr(ZkStateReader.BASE_URL_PROP), 
nodeProps.getStr(ZkStateReader.CORE_NAME_PROP));
-  }
-  
-  public static String getCoreUrl(String baseUrl, String coreName) {
-    StringBuilder sb = new StringBuilder();
-    sb.append(baseUrl);
-    if (!baseUrl.endsWith("/")) sb.append("/");
-    sb.append(coreName);
-    if (!(sb.substring(sb.length() - 1).equals("/"))) sb.append("/");
-    return sb.toString();
-  }
-
-  @Override
-  public String toString() {
-    return nodeProps.toString();
-  }
-
-  public ZkNodeProps getNodeProps() {
-    return nodeProps;
-  }
-
-  public boolean isLeader() {
-    return nodeProps.containsKey(ZkStateReader.LEADER_PROP);
-  }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCredentialsProvider.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCredentialsProvider.java
 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCredentialsProvider.java
deleted file mode 100644
index 012bf5d..0000000
--- 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkCredentialsProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import java.util.Collection;
-
-public interface ZkCredentialsProvider {
-  
-  class ZkCredentials {
-    String scheme;
-    byte[] auth;
-    
-    public ZkCredentials(String scheme, byte[] auth) {
-      super();
-      this.scheme = scheme;
-      this.auth = auth;
-    }
-    
-    String getScheme() {
-      return scheme;
-    }
-    
-    byte[] getAuth() {
-      return auth;
-    }
-  }
-  
-  Collection<ZkCredentials> getCredentials();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkNodeProps.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkNodeProps.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkNodeProps.java
deleted file mode 100644
index 9adffd0..0000000
--- a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkNodeProps.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.solr.common.cloud;
-
-import org.noggit.JSONUtil;
-import org.noggit.JSONWriter;
-
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * ZkNodeProps contains generic immutable properties.
- */
-public class ZkNodeProps implements JSONWriter.Writable {
-
-  protected final Map<String,Object> propMap;
-
-  /**
-   * Construct ZKNodeProps from map.
-   */
-  public ZkNodeProps(Map<String,Object> propMap) {
-    this.propMap = propMap;
-    // TODO: store an unmodifiable map, but in a way that guarantees not to 
wrap more than once.
-    // Always wrapping introduces a memory leak.
-  }
-
-
-  /**
-   * Constructor that populates the from array of Strings in form key1, value1,
-   * key2, value2, ..., keyN, valueN
-   */
-  public ZkNodeProps(String... keyVals) {
-    this( makeMap((Object[])keyVals) );
-  }
-
-  public static ZkNodeProps fromKeyVals(Object... keyVals)  {
-    return new ZkNodeProps( makeMap(keyVals) );
-  }
-
-  public static Map<String,Object> makeMap(Object... keyVals) {
-    if ((keyVals.length & 0x01) != 0) {
-      throw new IllegalArgumentException("arguments should be key,value");
-    }
-    Map<String,Object> propMap = new LinkedHashMap<>(keyVals.length>>1);
-    for (int i = 0; i < keyVals.length; i+=2) {
-      propMap.put(keyVals[i].toString(), keyVals[i+1]);
-    }
-    return propMap;
-  }
-
-
-  /**
-   * Get property keys.
-   */
-  public Set<String> keySet() {
-    return propMap.keySet();
-  }
-
-  /**
-   * Get all properties as map.
-   */
-  public Map<String, Object> getProperties() {
-    return propMap;
-  }
-
-  /** Returns a shallow writable copy of the properties */
-  public Map<String,Object> shallowCopy() {
-    return new LinkedHashMap<>(propMap);
-  }
-
-  /**
-   * Create Replica from json string that is typically stored in zookeeper.
-   */
-  public static ZkNodeProps load(byte[] bytes) {
-    Map<String, Object> props = (Map<String, Object>) 
ZkStateReader.fromJSON(bytes);
-    return new ZkNodeProps(props);
-  }
-
-  @Override
-  public void write(JSONWriter jsonWriter) {
-    jsonWriter.write(propMap);
-  }
-  
-  /**
-   * Get a string property value.
-   */
-  public String getStr(String key) {
-    Object o = propMap.get(key);
-    return o == null ? null : o.toString();
-  }
-
-  /**
-   * Get a string property value.
-   */
-  public Integer getInt(String key, Integer def) {
-    Object o = propMap.get(key);
-    return o == null ? def : Integer.valueOf(o.toString());
-  }
-
-  /**
-   * Get a string property value.
-   */
-  public String getStr(String key,String def) {
-    Object o = propMap.get(key);
-    return o == null ? def : o.toString();
-  }
-
-  public Object get(String key) {
-    return propMap.get(key);
-  }
-
-  @Override
-  public String toString() {
-    return JSONUtil.toJSON(this);
-    /***
-    StringBuilder sb = new StringBuilder();
-    Set<Entry<String,Object>> entries = propMap.entrySet();
-    for(Entry<String,Object> entry : entries) {
-      sb.append(entry.getKey() + "=" + entry.getValue() + "\n");
-    }
-    return sb.toString();
-    ***/
-  }
-
-  /**
-   * Check if property key exists.
-   */
-  public boolean containsKey(String key) {
-    return propMap.containsKey(key);
-  }
-
-  public boolean getBool(String key, boolean b) {
-    Object o = propMap.get(key);
-    if(o==null) return b;
-    return Boolean.parseBoolean(o.toString());
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d9a661cf/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkOperation.java
----------------------------------------------------------------------
diff --git 
a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkOperation.java 
b/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkOperation.java
deleted file mode 100644
index 9ea283b..0000000
--- a/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkOperation.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *
- * 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.
- */
-package org.apache.solr.common.cloud;
-
-import org.apache.zookeeper.KeeperException;
-
-/**
- * A callback object which can be used for implementing retry-able operations.
- *
- */
-public abstract class ZkOperation {
-
-    /**
-     * Performs the operation - which may be involved multiple times if the 
connection
-     * to ZooKeeper closes during this operation
-     *
-     * @return the result of the operation or null
-     */
-    public abstract Object execute() throws KeeperException, 
InterruptedException;
-}

Reply via email to