You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tb...@apache.org on 2014/01/21 22:22:37 UTC

git commit: AMBARI-4375 : Ambari-SCOM : Remove Resource.Type switch statements.

Updated Branches:
  refs/heads/trunk 6ddd861cd -> c41796157


AMBARI-4375 : Ambari-SCOM : Remove Resource.Type switch statements.


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

Branch: refs/heads/trunk
Commit: c417961570d98f05709fce07526a4b74cfaf8d64
Parents: 6ddd861
Author: tbeerbower <tb...@hortonworks.com>
Authored: Tue Jan 21 13:17:21 2014 -0500
Committer: tbeerbower <tb...@hortonworks.com>
Committed: Tue Jan 21 16:22:11 2014 -0500

----------------------------------------------------------------------
 .../ambari/msi/AbstractResourceProvider.java    | 33 ++++----
 .../apache/ambari/scom/SQLProviderModule.java   | 79 +++++++++-----------
 .../msi/AbstractResourceProviderTest.java       | 62 +++++++++++++++
 3 files changed, 114 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/c4179615/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/AbstractResourceProvider.java
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/AbstractResourceProvider.java b/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/AbstractResourceProvider.java
index 489063f..5d7e3db 100644
--- a/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/AbstractResourceProvider.java
+++ b/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/AbstractResourceProvider.java
@@ -252,23 +252,22 @@ public abstract class AbstractResourceProvider implements ResourceProvider {
    */
   public static ResourceProvider getResourceProvider(Resource.Type type,
                                                      ClusterDefinition clusterDefinition) {
-    switch (type) {
-      case Cluster:
-        return new ClusterProvider(clusterDefinition);
-      case Service:
-        return new ServiceProvider(clusterDefinition);
-      case Component:
-        return new ComponentProvider(clusterDefinition);
-      case Host:
-        return new HostProvider(clusterDefinition);
-      case HostComponent:
-        return new HostComponentProvider(clusterDefinition);
-      case Request:
-        return new RequestProvider(clusterDefinition);
-      case Task:
-        return new TaskProvider(clusterDefinition);
-      default:
-        return new NoOpProvider(type, clusterDefinition);
+    if (type.equals(Resource.Type.Cluster)) {
+      return new ClusterProvider(clusterDefinition);
+    } else if (type.equals(Resource.Type.Service)) {
+      return new ServiceProvider(clusterDefinition);
+    } else if (type.equals(Resource.Type.Component)) {
+      return new ComponentProvider(clusterDefinition);
+    } else if (type.equals(Resource.Type.Host)) {
+      return new HostProvider(clusterDefinition);
+    } else if (type.equals(Resource.Type.HostComponent)) {
+      return new HostComponentProvider(clusterDefinition);
+    } else if (type.equals(Resource.Type.Request)) {
+      return new RequestProvider(clusterDefinition);
+    } else if (type.equals(Resource.Type.Task)) {
+      return new TaskProvider(clusterDefinition);
+    } else {
+      return new NoOpProvider(type, clusterDefinition);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/c4179615/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/scom/SQLProviderModule.java
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/scom/SQLProviderModule.java b/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/scom/SQLProviderModule.java
index 82217c8..439ac00 100644
--- a/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/scom/SQLProviderModule.java
+++ b/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/scom/SQLProviderModule.java
@@ -100,49 +100,42 @@ public class SQLProviderModule extends DefaultProviderModule implements HostInfo
 
     List<PropertyProvider> providers = new LinkedList<PropertyProvider>();
 
-    switch (type) {
-      case Component:
-
-        providers.add(new JMXPropertyProvider(
-            PropertyHelper.getJMXPropertyIds(type),
-            urlStreamProvider,
-            this,
-            PropertyHelper.getPropertyId("ServiceComponentInfo", "cluster_name"),
-            null,
-            PropertyHelper.getPropertyId("ServiceComponentInfo", "component_name"),
-            PropertyHelper.getPropertyId("ServiceComponentInfo", "state"),
-            Collections.singleton("STARTED")));
-
-        providers.add(new SQLPropertyProvider(
-            PropertyHelper.getGangliaPropertyIds(type),
-            this,
-            PropertyHelper.getPropertyId("ServiceComponentInfo", "cluster_name"),
-            null,
-            PropertyHelper.getPropertyId("ServiceComponentInfo", "component_name"),
-            connectionFactory));
-        break;
-      case HostComponent:
-
-        providers.add(new JMXPropertyProvider(
-            PropertyHelper.getJMXPropertyIds(type),
-            urlStreamProvider,
-            this,
-            PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
-            PropertyHelper.getPropertyId("HostRoles", "host_name"),
-            PropertyHelper.getPropertyId("HostRoles", "component_name"),
-            PropertyHelper.getPropertyId("HostRoles", "state"),
-            Collections.singleton("STARTED")));
-
-        providers.add(new SQLPropertyProvider(
-            PropertyHelper.getGangliaPropertyIds(type),
-            this,
-            PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
-            PropertyHelper.getPropertyId("HostRoles", "host_name"),
-            PropertyHelper.getPropertyId("HostRoles", "component_name"),
-            connectionFactory));
-        break;
-      default:
-        break;
+    if (type.equals(Resource.Type.Component)) {
+      providers.add(new JMXPropertyProvider(
+          PropertyHelper.getJMXPropertyIds(type),
+          urlStreamProvider,
+          this,
+          PropertyHelper.getPropertyId("ServiceComponentInfo", "cluster_name"),
+          null,
+          PropertyHelper.getPropertyId("ServiceComponentInfo", "component_name"),
+          PropertyHelper.getPropertyId("ServiceComponentInfo", "state"),
+          Collections.singleton("STARTED")));
+
+      providers.add(new SQLPropertyProvider(
+          PropertyHelper.getGangliaPropertyIds(type),
+          this,
+          PropertyHelper.getPropertyId("ServiceComponentInfo", "cluster_name"),
+          null,
+          PropertyHelper.getPropertyId("ServiceComponentInfo", "component_name"),
+          connectionFactory));
+    } else if (type.equals(Resource.Type.HostComponent)) {
+      providers.add(new JMXPropertyProvider(
+          PropertyHelper.getJMXPropertyIds(type),
+          urlStreamProvider,
+          this,
+          PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
+          PropertyHelper.getPropertyId("HostRoles", "host_name"),
+          PropertyHelper.getPropertyId("HostRoles", "component_name"),
+          PropertyHelper.getPropertyId("HostRoles", "state"),
+          Collections.singleton("STARTED")));
+
+      providers.add(new SQLPropertyProvider(
+          PropertyHelper.getGangliaPropertyIds(type),
+          this,
+          PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
+          PropertyHelper.getPropertyId("HostRoles", "host_name"),
+          PropertyHelper.getPropertyId("HostRoles", "component_name"),
+          connectionFactory));
     }
     putPropertyProviders(type, providers);
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/c4179615/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/AbstractResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/AbstractResourceProviderTest.java b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/AbstractResourceProviderTest.java
new file mode 100644
index 0000000..f4e2446
--- /dev/null
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/AbstractResourceProviderTest.java
@@ -0,0 +1,62 @@
+/**
+ * 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.ambari.msi;
+
+import org.apache.ambari.scom.TestClusterDefinitionProvider;
+import org.apache.ambari.scom.TestHostInfoProvider;
+import org.apache.ambari.server.controller.spi.Resource;
+import org.apache.ambari.server.controller.spi.ResourceProvider;
+import org.apache.ambari.server.controller.utilities.PropertyHelper;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * AbstractResourceProvider tests.
+ */
+public class AbstractResourceProviderTest {
+
+  private static Set<Resource.Type> types = new HashSet<Resource.Type>();
+  static {
+    types.add(Resource.Type.Cluster);
+    types.add(Resource.Type.Service);
+    types.add(Resource.Type.Component);
+    types.add(Resource.Type.Host);
+    types.add(Resource.Type.HostComponent);
+    types.add(Resource.Type.Request);
+    types.add(Resource.Type.Task);
+  }
+
+  @Test
+  public void testGetResourceProvider() throws Exception {
+    ClusterDefinition clusterDefinition = new ClusterDefinition(new TestStateProvider(), new TestClusterDefinitionProvider(), new TestHostInfoProvider());
+    clusterDefinition.setServiceState("HDFS", "INSTALLED");
+
+    for (Resource.Type type : types) {
+      ResourceProvider provider = AbstractResourceProvider.getResourceProvider(type, clusterDefinition);
+      Set<Resource> resources = provider.getResources(PropertyHelper.getReadRequest(), null);
+
+      for (Resource resource : resources) {
+        Assert.assertEquals(type, resource.getType());
+      }
+    }
+  }
+}