SLIDER-70 move from URLs to URL strings in ProviderService methods

git-svn-id: https://svn.apache.org/repos/asf/incubator/slider/trunk@1595907 13f79535-47bb-0310-9956-ffa450edef68
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 8cc69b9..df97226 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
@@ -279,8 +279,8 @@
   in the external view
    */
   @Override
-  public Map<String,URL> buildMonitorDetails(ClusterDescription clusterDesc) {
-    Map<String, URL> details = new LinkedHashMap<>();
+  public Map<String, String> buildMonitorDetails(ClusterDescription clusterDesc) {
+    Map<String, String> details = new LinkedHashMap<>();
 
     // add in all the 
     buildEndpointDetails(details);
@@ -295,24 +295,19 @@
   }
 
   @Override
-  public void buildEndpointDetails(Map<String, URL> details) {
+  public void buildEndpointDetails(Map<String, String> details) {
       ServiceInstanceData self = registry.getSelfRegistration();
     buildEndpointDetails(details, self);
   }
 
-  public static void buildEndpointDetails(Map<String, URL> details,
+  public static void buildEndpointDetails(Map<String, String> details,
       ServiceInstanceData self) {
     Map<String, RegisteredEndpoint> endpoints =
         self.getRegistryView(true).endpoints;
     for (Map.Entry<String, RegisteredEndpoint> endpoint : endpoints.entrySet()) {
       RegisteredEndpoint val = endpoint.getValue();
       if (val.type.equals(RegisteredEndpoint.TYPE_URL)) {
-        try {
-          URL url = new URL(val.value);
-          details.put(val.description, url);
-        } catch (MalformedURLException e) {
-          log.warn("Failed to create URL from {} : {} ",val.value, e);
-        }
+          details.put(val.description, val.value);
       }
     }
   }
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 e0783ea..15e19b8 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
@@ -133,7 +133,7 @@
    * If no anchor is needed/desired, insert the key with a null value.
    * @return
    */
-  Map<String,URL> buildMonitorDetails(ClusterDescription clusterSpec);
+  Map<String, String> buildMonitorDetails(ClusterDescription clusterSpec);
 
   /**
    * bind operation -invoked before the service is started
@@ -153,5 +153,5 @@
    * Build up the endpoint details for this service
    * @param details
    */
-  void buildEndpointDetails(Map<String, URL> details);
+  void buildEndpointDetails(Map<String, String> details);
 }
diff --git a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
index b246dac..656a3fe 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
@@ -737,18 +737,18 @@
   }
 
   @Override
-  public Map<String, URL> buildMonitorDetails(ClusterDescription clusterDesc) {
-    Map<String, URL> details = super.buildMonitorDetails(clusterDesc);
+  public Map<String, String> buildMonitorDetails(ClusterDescription clusterDesc) {
+    Map<String, String> details = super.buildMonitorDetails(clusterDesc);
     buildRoleHostDetails(details);
     return details;
   }
 
-  private void buildRoleHostDetails(Map<String, URL> details) {
+  private void buildRoleHostDetails(Map<String, String> details) {
     for (Map.Entry<String, Map<String, ClusterNode>> entry :
         getRoleClusterNodeMapping().entrySet()) {
       details.put(entry.getKey() + " Host(s)/Container(s): " +
                   getHostsList(entry.getValue().values(), false),
-                  null);
+                  "");
     }
   }
 
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
index bb9e710..90a3ee7 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
@@ -23,6 +23,7 @@
 import org.apache.hadoop.yarn.webapp.hamlet.Hamlet.UL;
 import org.apache.hadoop.yarn.webapp.view.HtmlBlock;
 import org.apache.slider.api.StatusKeys;
+import org.apache.slider.common.tools.SliderUtils;
 import org.apache.slider.providers.ProviderService;
 import org.apache.slider.server.appmaster.state.StateAccessForProviders;
 import org.apache.slider.server.appmaster.web.WebAppApi;
@@ -95,14 +96,14 @@
   }
 
   protected void addProviderServiceOptions(ProviderService providerService, UL<DIV<Hamlet>> ul) {
-    Map<String,URL> details = providerService.buildMonitorDetails(appState.getClusterStatus());
+    Map<String, String> details = providerService.buildMonitorDetails(appState.getClusterStatus());
     if (null == details) {
       return;
     }
-    // Loop over each entry, placing the text in the UL, adding an anchor when the URL is non-null
-    for (Entry<String,URL> entry : details.entrySet()) {
-      if (null != entry.getValue()) {
-        String url = entry.getValue().toString();
+    // Loop over each entry, placing the text in the UL, adding an anchor when the URL is non-null/empty
+    for (Entry<String, String> entry : details.entrySet()) {
+      String url = entry.getValue();
+      if (SliderUtils.isSet(url) ) {
         ul.li()._(entry.getKey()).a(url, url)._();
       } else {
         ul.li(entry.getKey());
diff --git a/slider-providers/accumulo/slider-accumulo-provider/src/main/java/org/apache/slider/providers/accumulo/AccumuloProviderService.java b/slider-providers/accumulo/slider-accumulo-provider/src/main/java/org/apache/slider/providers/accumulo/AccumuloProviderService.java
index 12a6f60..904514d 100644
--- a/slider-providers/accumulo/slider-accumulo-provider/src/main/java/org/apache/slider/providers/accumulo/AccumuloProviderService.java
+++ b/slider-providers/accumulo/slider-accumulo-provider/src/main/java/org/apache/slider/providers/accumulo/AccumuloProviderService.java
@@ -393,8 +393,8 @@
    * @see org.apache.slider.providers.ProviderService#buildMonitorDetails()
    */
   @Override
-  public Map<String,URL> buildMonitorDetails(ClusterDescription clusterDesc) {
-    Map<String, URL> details = super.buildMonitorDetails(clusterDesc);
+  public Map<String, String> buildMonitorDetails(ClusterDescription clusterDesc) {
+    Map<String, String> details = super.buildMonitorDetails(clusterDesc);
 
 
     details.put("Active Accumulo Master (RPC): " +
@@ -404,14 +404,9 @@
     String monitorKey = "Active Accumulo Monitor: ";
     String monitorAddr = getInfoAvoidingNull(clusterDesc, AccumuloKeys.MONITOR_ADDRESS);
     if (!StringUtils.isBlank(monitorAddr)) {
-      try {
         HostAndPort hostPort = HostAndPort.fromString(monitorAddr);
         details.put(monitorKey,
-            new URL("http", hostPort.getHostText(), hostPort.getPort(), ""));
-      } catch (Exception e) {
-        log.debug("Caught exception parsing Accumulo monitor URL", e);
-        details.put(monitorKey + "N/A", null);
-      }
+            String.format("http://%s:%d", hostPort.getHostText(), hostPort.getPort()));
     } else {
       details.put(monitorKey + "N/A", null);
     }
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 c057d3c..c63c26b 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
@@ -267,11 +267,11 @@
   
 
   @Override
-  public Map<String,URL> buildMonitorDetails(ClusterDescription clusterDesc) {
-    Map<String, URL> details = super.buildMonitorDetails(clusterDesc);
+  public Map<String, String> buildMonitorDetails(ClusterDescription clusterDesc) {
+    Map<String, String> details = super.buildMonitorDetails(clusterDesc);
 
     details.put("Active HBase Master (RPC): " 
-                + getInfoAvoidingNull(clusterDesc, StatusKeys.INFO_MASTER_ADDRESS), null);
+                + getInfoAvoidingNull(clusterDesc, StatusKeys.INFO_MASTER_ADDRESS),"");
 
     return details;
   }