You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by sm...@apache.org on 2014/05/28 04:21:08 UTC

[03/44] git commit: SLIDER-35 multiple hbase instances are registering without conflict, test verifes it

SLIDER-35 multiple hbase instances are registering without conflict, test verifes it


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/edbd55d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/edbd55d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/edbd55d7

Branch: refs/heads/master
Commit: edbd55d74cfe8467f2647224b4b51b229c11aeea
Parents: 778aa02
Author: Steve Loughran <st...@hortonworks.com>
Authored: Wed May 21 13:43:56 2014 +0100
Committer: Steve Loughran <st...@hortonworks.com>
Committed: Wed May 21 13:43:56 2014 +0100

----------------------------------------------------------------------
 .../org/apache/slider/client/SliderClient.java  |  2 +-
 .../core/registry/info/ServiceInstanceData.java | 41 +++++++++++++++++++-
 .../providers/AbstractClientProvider.java       |  1 -
 .../providers/AbstractProviderService.java      |  4 +-
 .../apache/slider/providers/ProviderRole.java   |  5 +--
 .../slider/providers/ProviderService.java       |  1 -
 .../apache/slider/providers/ProviderUtils.java  |  6 +--
 .../slider/providers/SliderProviderFactory.java |  4 --
 .../slideram/SliderAMClientProvider.java        |  4 +-
 .../services/curator/RegistryBinderService.java | 29 +++++++-------
 .../standalone/TestStandaloneAgentAM.groovy     |  4 +-
 .../standalone/TestStandaloneRegistryAM.groovy  |  4 +-
 .../apache/slider/test/SliderTestUtils.groovy   | 15 ++++---
 .../publisher/TestAgentProviderService.java     |  4 +-
 .../providers/hbase/HBaseClientProvider.java    |  4 +-
 .../slider/providers/hbase/HBaseKeys.java       |  4 ++
 .../providers/hbase/HBaseProviderService.java   |  5 +--
 .../minicluster/live/TestHBaseMaster.groovy     | 11 +++++-
 .../minicluster/live/TestTwoLiveClusters.groovy | 28 +++++++++----
 19 files changed, 115 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
index 8665622..a3c5c8e 100644
--- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
@@ -2187,7 +2187,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
    * @throws IOException
    * @throws YarnException
    */
-  public List<String> listRegistryInstanceIDs() throws
+  public List<String> listRegistedSliderInstances() throws
       IOException,
       YarnException {
     try {

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/core/registry/info/ServiceInstanceData.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/core/registry/info/ServiceInstanceData.java b/slider-core/src/main/java/org/apache/slider/core/registry/info/ServiceInstanceData.java
index cf5e6f4..1d8c561 100644
--- a/slider-core/src/main/java/org/apache/slider/core/registry/info/ServiceInstanceData.java
+++ b/slider-core/src/main/java/org/apache/slider/core/registry/info/ServiceInstanceData.java
@@ -26,7 +26,12 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * Service instance data to serialize with JSON
+ * Service instance data to serialize with JSON.
+ * 
+ * The equality and hash codes are derived from the
+ * service type and ID, which aren't final so that JSON marshalling
+ * works. Do not change these fields if an instance is stored
+ * in a map
  */
 @JsonIgnoreProperties(ignoreUnknown = true)
 @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
@@ -55,6 +60,40 @@ public class ServiceInstanceData implements Serializable {
     this.id = id;
   }
 
+  /**
+   * Instances are equal if they look after the same service type
+   * and name
+   * @param o other
+   * @return true if id and type match
+   */
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+
+    ServiceInstanceData that = (ServiceInstanceData) o;
+
+    if (!id.equals(that.id)) {
+      return false;
+    }
+    if (!serviceType.equals(that.serviceType)) {
+      return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = serviceType.hashCode();
+    result = 31 * result + id.hashCode();
+    return result;
+  }
+
   @Override
   public String toString() {
     final StringBuilder sb =

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/providers/AbstractClientProvider.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/AbstractClientProvider.java b/slider-core/src/main/java/org/apache/slider/providers/AbstractClientProvider.java
index 1ff56a9..f8008a4 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/AbstractClientProvider.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/AbstractClientProvider.java
@@ -63,7 +63,6 @@ public abstract class AbstractClientProvider extends Configured {
 
   /**
    * Validate the instance definition.
-   * @param clusterSpec
    */
   public void validateInstanceDefinition(AggregateConf instanceDefinition) throws
       SliderException {

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/providers/AbstractProviderService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/AbstractProviderService.java b/slider-core/src/main/java/org/apache/slider/providers/AbstractProviderService.java
index 8d3146a..a06134b 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/AbstractProviderService.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/AbstractProviderService.java
@@ -87,9 +87,9 @@ public abstract class AbstractProviderService
 
   @Override
   public void bind(StateAccessForProviders stateAccessor,
-      RegistryViewForProviders registry) {
+      RegistryViewForProviders reg) {
     this.amState = stateAccessor;
-    this.registry = registry;
+    this.registry = reg;
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/providers/ProviderRole.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/ProviderRole.java b/slider-core/src/main/java/org/apache/slider/providers/ProviderRole.java
index 7502267..5b85f7b 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/ProviderRole.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/ProviderRole.java
@@ -49,10 +49,7 @@ public final class ProviderRole {
     }
 
     ProviderRole that = (ProviderRole) o;
-    if (!name.equals(that.name)) {
-      return false;
-    }
-    return true;
+    return name.equals(that.name);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/providers/ProviderService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/ProviderService.java b/slider-core/src/main/java/org/apache/slider/providers/ProviderService.java
index 47a8cc3..8d2462e 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/ProviderService.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/ProviderService.java
@@ -33,7 +33,6 @@ import org.apache.slider.core.main.ExitCodeProvider;
 import org.apache.slider.core.registry.info.ServiceInstanceData;
 import org.apache.slider.server.appmaster.state.StateAccessForProviders;
 import org.apache.slider.server.appmaster.web.rest.agent.AgentRestOperations;
-import org.apache.slider.server.services.curator.RegistryBinderService;
 import org.apache.slider.server.services.registry.RegistryViewForProviders;
 import org.apache.slider.server.services.utility.EventCallback;
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/providers/ProviderUtils.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/ProviderUtils.java b/slider-core/src/main/java/org/apache/slider/providers/ProviderUtils.java
index 4a9cb6d..cb7d27a 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/ProviderUtils.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/ProviderUtils.java
@@ -229,7 +229,7 @@ public class ProviderUtils implements RoleKeys {
                                    String configName,
                                    Map<String,String> tokenMap) {
     String prefix = OptionKeys.SITE_XML_PREFIX +
-                    (configName.length() > 0 ? configName + "." : "");
+                    (!configName.isEmpty() ? configName + "." : "");
     for (Map.Entry<String, String> entry : options.entrySet()) {
       String key = entry.getKey();
       if (key.startsWith(prefix)) {
@@ -294,7 +294,7 @@ public class ProviderUtils implements RoleKeys {
                                                                  FileNotFoundException {
     String path;
     File scriptFile;
-    if (imagePath!=null) {
+    if (imagePath != null) {
       File tarball = new File(SliderKeys.LOCAL_TARBALL_INSTALL_SUBDIR);
       scriptFile = findBinScriptInExpandedArchive(tarball, bindir, script);
       // now work back from the script to build the relative path
@@ -418,7 +418,7 @@ public class ProviderUtils implements RoleKeys {
     }
 
     log.debug("Found {} entries in {}", ls.length, base);
-    List<File> directories = new LinkedList<File>();
+    List<File> directories = new LinkedList<>();
     StringBuilder dirs = new StringBuilder();
     for (File file : ls) {
       log.debug("{}", false);

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/providers/SliderProviderFactory.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/SliderProviderFactory.java b/slider-core/src/main/java/org/apache/slider/providers/SliderProviderFactory.java
index 4fc617f..f3bf0b1 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/SliderProviderFactory.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/SliderProviderFactory.java
@@ -87,10 +87,6 @@ public abstract class SliderProviderFactory extends Configured {
       SliderProviderFactory providerFactory = providerClass.newInstance();
       providerFactory.setConf(conf);
       return providerFactory;
-    } catch (InstantiationException e) {
-      ex = e;
-    } catch (IllegalAccessException e) {
-      ex = e;
     } catch (Exception e) {
       ex = e;
     }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/providers/slideram/SliderAMClientProvider.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/slideram/SliderAMClientProvider.java b/slider-core/src/main/java/org/apache/slider/providers/slideram/SliderAMClientProvider.java
index 66cfeba..9d13707 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/slideram/SliderAMClientProvider.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/slideram/SliderAMClientProvider.java
@@ -87,7 +87,7 @@ public class SliderAMClientProvider extends AbstractClientProvider implements
    * List of roles
    */
   public static final List<ProviderRole> ROLES =
-    new ArrayList<ProviderRole>();
+    new ArrayList<>();
 
   public static final int KEY_AM = ROLE_AM_PRIORITY_INDEX;
 
@@ -151,7 +151,7 @@ public class SliderAMClientProvider extends AbstractClientProvider implements
     throws IOException, SliderException {
 
     Map<String, LocalResource> providerResources =
-        new HashMap<String, LocalResource>();
+        new HashMap<>();
 
 
     ProviderUtils.addProviderJar(providerResources,

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/main/java/org/apache/slider/server/services/curator/RegistryBinderService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/curator/RegistryBinderService.java b/slider-core/src/main/java/org/apache/slider/server/services/curator/RegistryBinderService.java
index f4bd9bd..14b78a7 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/curator/RegistryBinderService.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/curator/RegistryBinderService.java
@@ -108,12 +108,6 @@ public class RegistryBinderService<Payload> extends CuratorService {
     Preconditions.checkNotNull(name, "null `name` arg");
     Preconditions.checkState(isInState(STATE.STARTED), "Not started: " + this);
 
-    if (lookup(id) != null) {
-      throw new BadClusterStateException(
-        "existing entry for service id %s name %s %s",
-        id, name, url);
-    }
-
     ServiceInstanceBuilder<Payload> instanceBuilder = builder()
         .name(name)
         .id(id)
@@ -141,16 +135,6 @@ public class RegistryBinderService<Payload> extends CuratorService {
   }
 
   /**
-   * Get the registered instance by its ID
-   * @param id ID
-   * @return instance or null
-   */
-  public synchronized ServiceInstance<Payload> lookup(String id) {
-    Preconditions.checkNotNull(id, "null `id` arg");
-    return entries.get(id);
-  }
-
-  /**
    * Create a builder. This is already pre-prepared with address, registration
    * time and a (random) UUID
    * @return a builder
@@ -270,6 +254,19 @@ public class RegistryBinderService<Payload> extends CuratorService {
   }
 
   /**
+   * Find a single instance -return that value or raise an exception
+   * @param serviceType service type
+   * @param name the name (required(
+   * @return the instance that matches the criteria
+   * @throws FileNotFoundException if there were no matches
+   * @throws IOException any network problem
+   */
+  public CuratorServiceInstance<Payload> findInstance(String serviceType,
+      String name) throws IOException {
+    Preconditions.checkArgument(StringUtils.isNotEmpty(name), "name");
+    return findInstances(serviceType, name).get(0);
+  }
+  /**
    * List registry entries. If a name was given, then the single match is returned
    * -otherwise all entries matching the service type
    * @param serviceType service type

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
index 6794327..d700fea 100644
--- a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
@@ -98,10 +98,10 @@ class TestStandaloneAgentAM  extends AgentMiniClusterTestBase {
     describe "service registry names"
     SliderRegistryService registry = client.registry
     def names = registry.getServiceTypes();
-    dumpRegistryNames(names)
+    dumpRegistryServiceTypes(names)
     describe "service registry instance IDs"
 
-    def instanceIds = client.listRegistryInstanceIDs()
+    def instanceIds = client.listRegistedSliderInstances()
 
     log.info("number of instanceIds: ${instanceIds.size()}")
     instanceIds.each { String it -> log.info(it) }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneRegistryAM.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneRegistryAM.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneRegistryAM.groovy
index 7582b72..7639375 100644
--- a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneRegistryAM.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneRegistryAM.groovy
@@ -115,9 +115,9 @@ class TestStandaloneRegistryAM extends AgentMiniClusterTestBase {
     describe "service registry names"
     SliderRegistryService registryService = client.registry
     def serviceTypes = registryService.serviceTypes;
-    dumpRegistryNames(serviceTypes)
+    dumpRegistryServiceTypes(serviceTypes)
 
-    List<String> instanceIds = client.listRegistryInstanceIDs()
+    List<String> instanceIds = client.listRegistedSliderInstances()
 
 
     dumpRegistryInstanceIDs(instanceIds)

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
index 8588a53..2045f11 100644
--- a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
@@ -695,14 +695,17 @@ class SliderTestUtils extends Assert {
 
   public static void dumpRegistryInstanceIDs(List<String> instanceIds) {
     describe "service registry instance IDs"
-    log.info("number of instanceIds: ${instanceIds.size()}")
-    instanceIds.each { String it -> log.info(it) }
+    dumpCollection(instanceIds)
   }
 
-  public static void dumpRegistryNames(Collection<String> names) {
-    describe "service registry names"
-    log.info("number of names: ${names.size()}")
-    names.each { String it -> log.info(it) }
+  public static void dumpRegistryServiceTypes(Collection<String> entries) {
+    describe "service registry types"
+    dumpCollection(entries)
+  }
+
+  def static void dumpCollection(Collection<String> entries) {
+    log.info("number of entries: ${entries.size()}")
+    entries.each { String it -> log.info(it) }
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/publisher/TestAgentProviderService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/publisher/TestAgentProviderService.java b/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/publisher/TestAgentProviderService.java
index 6aa7732..97199f4 100644
--- a/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/publisher/TestAgentProviderService.java
+++ b/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/publisher/TestAgentProviderService.java
@@ -39,8 +39,8 @@ public class TestAgentProviderService extends AgentProviderService{
 
   @Override
   public void bind(StateAccessForProviders stateAccessor,
-                   RegistryViewForProviders registry) {
-    super.bind(stateAccessor, registry);
+                   RegistryViewForProviders reg) {
+    super.bind(stateAccessor, reg);
     Map<String,String> dummyProps = new HashMap<>();
     dummyProps.put("prop1", "val1");
     dummyProps.put("prop2", "val2");

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseClientProvider.java
----------------------------------------------------------------------
diff --git a/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseClientProvider.java b/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseClientProvider.java
index 4007dcb..7b19dd2 100644
--- a/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseClientProvider.java
+++ b/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseClientProvider.java
@@ -209,7 +209,7 @@ public class HBaseClientProvider extends AbstractClientProvider implements
     }
   }
 
-  private static Set<String> knownRoleNames = new HashSet<String>();
+  private static Set<String> knownRoleNames = new HashSet<>();
   static {
     List<ProviderRole> roles = HBaseRoles.getRoles();
     knownRoleNames.add(SliderKeys.COMPONENT_AM);
@@ -256,7 +256,7 @@ public class HBaseClientProvider extends AbstractClientProvider implements
 
     // add any and all dependency files
     Map<String, LocalResource> providerResources =
-        new HashMap<String, LocalResource>();
+        new HashMap<>();
 
     ProviderUtils.addProviderJar(providerResources,
         this,

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseKeys.java
----------------------------------------------------------------------
diff --git a/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseKeys.java b/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseKeys.java
index af799c0..1d6ca70 100644
--- a/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseKeys.java
+++ b/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseKeys.java
@@ -70,6 +70,10 @@ public interface HBaseKeys {
   String HBASE_GC_OPTS = "SERVER_GC_OPTS";
 
   String PROPAGATED_CONFDIR = "PROPAGATED_CONFDIR";
+
+  /**
+   * Service type used in registry
+   */
   String HBASE_SERVICE_TYPE = "org.apache.hbase";
   String HBASE_SITE_PUBLISHED_CONFIG = "hbase-site";
 }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseProviderService.java
----------------------------------------------------------------------
diff --git a/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseProviderService.java b/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseProviderService.java
index 3402b4e..fc23970 100644
--- a/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseProviderService.java
+++ b/slider-providers/hbase/slider-hbase-provider/src/main/java/org/apache/slider/providers/hbase/HBaseProviderService.java
@@ -204,14 +204,13 @@ public class HBaseProviderService extends AbstractProviderService implements
   @Override
   protected void serviceStart() throws Exception {
     registerHBaseServiceEntry();
-
-
     super.serviceStart();
   }
 
   private void registerHBaseServiceEntry() throws IOException {
 
-    String name = amState.getApplicationName() + ".hbase";
+    String name = amState.getApplicationName() ; 
+//    name += ".hbase";
     ServiceInstanceData instanceData = new ServiceInstanceData(name,
         HBASE_SERVICE_TYPE);
     log.info("registering {}/{}", name, HBASE_SERVICE_TYPE );

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestHBaseMaster.groovy
----------------------------------------------------------------------
diff --git a/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestHBaseMaster.groovy b/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestHBaseMaster.groovy
index bd9b189..52bc004 100644
--- a/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestHBaseMaster.groovy
+++ b/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestHBaseMaster.groovy
@@ -80,7 +80,7 @@ class TestHBaseMaster extends HBaseMiniClusterTestBase {
     describe "service registry names"
     SliderRegistryService registryService = client.registry
     def names = registryService.getServiceTypes();
-    dumpRegistryNames(names)
+    dumpRegistryServiceTypes(names)
 
     List<CuratorServiceInstance<ServiceInstanceData>> instances =
         client.listRegistryInstances();
@@ -91,6 +91,15 @@ class TestHBaseMaster extends HBaseMiniClusterTestBase {
     assert hbaseService
     def hbaseServiceData = hbaseService.payload
     log.info "HBase service 0 == $hbaseServiceData"
+    assert hbaseServiceData.id 
+    assert hbaseServiceData.serviceType == HBaseKeys.HBASE_SERVICE_TYPE
+
+    hbaseInstances = registryService.findInstances(
+        HBaseKeys.HBASE_SERVICE_TYPE,
+        clustername)
+    assert hbaseInstances.size() == 1
+    def hbaseServiceData2 = hbaseInstances[0].payload
+    assert hbaseServiceData == hbaseServiceData2
 
     RegistryRetriever retriever = new RegistryRetriever(hbaseServiceData)
     log.info retriever.toString()

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/edbd55d7/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestTwoLiveClusters.groovy
----------------------------------------------------------------------
diff --git a/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestTwoLiveClusters.groovy b/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestTwoLiveClusters.groovy
index dba52ba..a58f99a 100644
--- a/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestTwoLiveClusters.groovy
+++ b/slider-providers/hbase/slider-hbase-provider/src/test/groovy/org/apache/slider/providers/hbase/minicluster/live/TestTwoLiveClusters.groovy
@@ -22,6 +22,7 @@ import groovy.transform.CompileStatic
 import groovy.util.logging.Slf4j
 import org.apache.slider.common.params.Arguments
 import org.apache.slider.client.SliderClient
+import org.apache.slider.providers.hbase.HBaseKeys
 import org.apache.slider.providers.hbase.minicluster.HBaseMiniClusterTestBase
 import org.apache.slider.core.main.ServiceLauncher
 import org.apache.slider.core.registry.info.ServiceInstanceData
@@ -41,8 +42,10 @@ class TestTwoLiveClusters extends HBaseMiniClusterTestBase {
    */
   @Test
   public void testTwoLiveClusters() throws Throwable {
-    createMiniCluster("TestTwoLiveClusters", configuration, 1, true)
-    String clustername1 = "testtwoliveclusters-a"
+    def name = "test_two_live_clusters"
+    createMiniCluster(name, configuration, 1, true)
+
+    String clustername1 = name + "-1"
     //now launch the cluster
     int regionServerCount = 1
     ServiceLauncher<SliderClient> launcher = createHBaseCluster(clustername1, regionServerCount, [], true, true) 
@@ -59,7 +62,7 @@ class TestTwoLiveClusters extends HBaseMiniClusterTestBase {
     waitForHBaseRegionServerCount(sliderClient, clustername1, 1, hbaseClusterStartupToLiveTime)
 
     //now here comes cluster #2
-    String clustername2 = "testtwoliveclusters-b"
+    String clustername2 = name + "-2"
 
 
     String zkpath = "/$clustername2"
@@ -83,21 +86,30 @@ class TestTwoLiveClusters extends HBaseMiniClusterTestBase {
     describe "service registry names"
     SliderRegistryService registry = cluster2Client.registry
     def names = registry.getServiceTypes();
-    dumpRegistryNames(names)
+    dumpRegistryServiceTypes(names)
 
-    List<String> instanceIds = sliderClient.listRegistryInstanceIDs()
+    List<String> instanceIds = sliderClient.listRegistedSliderInstances()
 
 
     dumpRegistryInstanceIDs(instanceIds)
-    assert names.size() == 1
+    assert names.size() == 2
     assert instanceIds.size() == 2
 
 
-    List<CuratorServiceInstance<ServiceInstanceData>> instances = sliderClient.listRegistryInstances(
-    )
+    List<CuratorServiceInstance<ServiceInstanceData>> instances =
+        sliderClient.listRegistryInstances()
     dumpRegistryInstances(instances)
     assert instances.size() == 2
 
+    def hbaseInstances = registry.findInstances(
+        HBaseKeys.HBASE_SERVICE_TYPE, null)
+    assert hbaseInstances.size() == 2
+    def hbase1ServiceData = registry.findInstance(
+        HBaseKeys.HBASE_SERVICE_TYPE, clustername1).payload
+    def hbase2ServiceData = registry.findInstance(
+        HBaseKeys.HBASE_SERVICE_TYPE, clustername2).payload
+    assert !(hbase1ServiceData == hbase2ServiceData)
+
     clusterActionFreeze(cluster2Client, clustername2,"freeze cluster 2")
     clusterActionFreeze(sliderClient, clustername1,"Freeze cluster 1")