You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2014/05/19 17:56:46 UTC

svn commit: r1595941 - /incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/

Author: stevel
Date: Mon May 19 15:56:46 2014
New Revision: 1595941

URL: http://svn.apache.org/r1595941
Log:
move AM model classes to java 7 language features

Modified:
    incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
    incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java
    incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeMap.java
    incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
    incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequestTracker.java
    incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
    incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleInstance.java
    incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleStatus.java

Modified: incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
URL: http://svn.apache.org/viewvc/incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java?rev=1595941&r1=1595940&r2=1595941&view=diff
==============================================================================
--- incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java (original)
+++ incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java Mon May 19 15:56:46 2014
@@ -132,7 +132,7 @@ public class AppState implements StateAc
    * Client properties created via the provider -static for the life
    * of the application
    */
-  private Map<String, String> clientProperties = new HashMap<String, String>();
+  private Map<String, String> clientProperties = new HashMap<>();
 
   /**
    The cluster description published to callers
@@ -147,10 +147,10 @@ public class AppState implements StateAc
 
 
   private final Map<Integer, RoleStatus> roleStatusMap =
-    new ConcurrentHashMap<Integer, RoleStatus>();
+    new ConcurrentHashMap<>();
 
   private final Map<String, ProviderRole> roles =
-    new ConcurrentHashMap<String, ProviderRole>();
+    new ConcurrentHashMap<>();
 
   /**
    * The master node.
@@ -162,7 +162,7 @@ public class AppState implements StateAc
    * been allocated but are not live; it is a superset of the live list
    */
   private final ConcurrentMap<ContainerId, RoleInstance> activeContainers =
-    new ConcurrentHashMap<ContainerId, RoleInstance>();
+    new ConcurrentHashMap<>();
 
   /**
    * Hash map of the containers we have released, but we
@@ -170,7 +170,7 @@ public class AppState implements StateAc
    * containers is treated as a successful outcome
    */
   private final ConcurrentMap<ContainerId, Container> containersBeingReleased =
-    new ConcurrentHashMap<ContainerId, Container>();
+    new ConcurrentHashMap<>();
   
   /**
    * Counter for completed containers ( complete denotes successful or failed )
@@ -205,34 +205,34 @@ public class AppState implements StateAc
    * the node is promoted from here to the containerMap
    */
   private final Map<ContainerId, RoleInstance> startingNodes =
-    new ConcurrentHashMap<ContainerId, RoleInstance>();
+    new ConcurrentHashMap<>();
 
   /**
    * List of completed nodes. This isn't kept in the CD as it gets too
    * big for the RPC responses. Indeed, we should think about how deep to get this
    */
   private final Map<ContainerId, RoleInstance> completedNodes
-    = new ConcurrentHashMap<ContainerId, RoleInstance>();
+    = new ConcurrentHashMap<>();
 
   /**
    * Nodes that failed to start.
    * Again, kept out of the CD
    */
   private final Map<ContainerId, RoleInstance> failedNodes =
-    new ConcurrentHashMap<ContainerId, RoleInstance>();
+    new ConcurrentHashMap<>();
 
   /**
    * Nodes that came assigned to a role above that
    * which were asked for -this appears to happen
    */
-  private final Set<ContainerId> surplusNodes = new HashSet<ContainerId>();
+  private final Set<ContainerId> surplusNodes = new HashSet<>();
 
   /**
    * Map of containerID -> cluster nodes, for status reports.
    * Access to this should be synchronized on the clusterDescription
    */
   private final Map<ContainerId, RoleInstance> liveNodes =
-    new ConcurrentHashMap<ContainerId, RoleInstance>();
+    new ConcurrentHashMap<>();
   private final AtomicInteger completionOfNodeNotInLiveListEvent =
     new AtomicInteger();
   private final AtomicInteger completionOfUnknownContainerEvent =
@@ -464,7 +464,7 @@ public class AppState implements StateAc
     this.applicationInfo = applicationInfo != null ? applicationInfo 
                                          : new HashMap<String, String>();
 
-    clientProperties = new HashMap<String, String>();
+    clientProperties = new HashMap<>();
 
 
     Set<String> confKeys = ConfigHelper.sortedConfigKeys(publishedProviderConf);
@@ -778,7 +778,7 @@ public class AppState implements StateAc
   @Override
   public synchronized List<RoleInstance> cloneActiveContainerList() {
     Collection<RoleInstance> values = activeContainers.values();
-    return new ArrayList<RoleInstance>(values);
+    return new ArrayList<>(values);
   }
   
   @Override
@@ -795,7 +795,7 @@ public class AppState implements StateAc
   public synchronized List<RoleInstance> cloneLiveContainerInfoList() {
     List<RoleInstance> allRoleInstances;
     Collection<RoleInstance> values = getLiveNodes().values();
-    allRoleInstances = new ArrayList<RoleInstance>(values);
+    allRoleInstances = new ArrayList<>(values);
     return allRoleInstances;
   }
 
@@ -818,7 +818,7 @@ public class AppState implements StateAc
     Collection<String> containerIDs) {
     //first, a hashmap of those containerIDs is built up
     Set<String> uuidSet = new HashSet<String>(containerIDs);
-    List<RoleInstance> nodes = new ArrayList<RoleInstance>(uuidSet.size());
+    List<RoleInstance> nodes = new ArrayList<>(uuidSet.size());
     Collection<RoleInstance> clusterNodes = getLiveNodes().values();
 
     for (RoleInstance node : clusterNodes) {
@@ -836,7 +836,7 @@ public class AppState implements StateAc
    * @return a list of nodes, may be empty
    */
   public synchronized List<RoleInstance> enumLiveNodesInRole(String role) {
-    List<RoleInstance> nodes = new ArrayList<RoleInstance>();
+    List<RoleInstance> nodes = new ArrayList<>();
     Collection<RoleInstance> allRoleInstances = getLiveNodes().values();
     for (RoleInstance node : allRoleInstances) {
       if (role.isEmpty() || role.equals(node.role)) {
@@ -852,11 +852,11 @@ public class AppState implements StateAc
    * @return the map of Role name to list of role instances
    */
   private synchronized Map<String, List<String>> createRoleToInstanceMap() {
-    Map<String, List<String>> map = new HashMap<String, List<String>>();
+    Map<String, List<String>> map = new HashMap<>();
     for (RoleInstance node : getLiveNodes().values()) {
       List<String> containers = map.get(node.role);
       if (containers == null) {
-        containers = new ArrayList<String>();
+        containers = new ArrayList<>();
         map.put(node.role, containers);
       }
       containers.add(node.id);
@@ -868,13 +868,12 @@ public class AppState implements StateAc
    * @return the map of Role name to list of Cluster Nodes, ready
    */
   private synchronized Map<String, Map<String, ClusterNode>> createRoleToClusterNodeMap() {
-    Map<String, Map<String, ClusterNode>> map =
-      new HashMap<String, Map<String, ClusterNode>>();
+    Map<String, Map<String, ClusterNode>> map = new HashMap<>();
     for (RoleInstance node : getLiveNodes().values()) {
       
       Map<String, ClusterNode> containers = map.get(node.role);
       if (containers == null) {
-        containers = new HashMap<String, ClusterNode>();
+        containers = new HashMap<>();
         map.put(node.role, containers);
       }
       Messages.RoleInstanceState pbuf = node.toProtobuf();
@@ -1226,7 +1225,7 @@ public class AppState implements StateAc
             String user = null;
             try {
               user = SliderUtils.getCurrentUser().getShortUserName();
-            } catch (IOException ioe) {
+            } catch (IOException ignored) {
             }
             String completedLogsUrl = null;
             Container c = roleInstance.container;
@@ -1335,7 +1334,7 @@ public class AppState implements StateAc
     MapOperations infoOps = new MapOperations("info",cd.info);
     infoOps.mergeWithoutOverwrite(applicationInfo);
     SliderUtils.addBuildInfo(infoOps, "status");
-    cd.statistics = new HashMap<String, Map<String, Integer>>();
+    cd.statistics = new HashMap<>();
 
     // build the map of node -> container IDs
     Map<String, List<String>> instanceMap = createRoleToInstanceMap();
@@ -1344,7 +1343,7 @@ public class AppState implements StateAc
     //build the map of node -> containers
     Map<String, Map<String, ClusterNode>> clusterNodes =
       createRoleToClusterNodeMap();
-    cd.status = new HashMap<String, Object>();
+    cd.status = new HashMap<>();
     cd.status.put(ClusterDescriptionKeys.KEY_CLUSTER_LIVE, clusterNodes);
 
 
@@ -1363,7 +1362,7 @@ public class AppState implements StateAc
       cd.statistics.put(rolename, stats);
     }
 
-    Map<String, Integer> sliderstats = new HashMap<String, Integer>();
+    Map<String, Integer> sliderstats = new HashMap<>();
     sliderstats.put(StatusKeys.STATISTICS_CONTAINERS_COMPLETED,
         completedContainerCount.get());
     sliderstats.put(StatusKeys.STATISTICS_CONTAINERS_FAILED,
@@ -1387,8 +1386,7 @@ public class AppState implements StateAc
   public synchronized List<AbstractRMOperation> reviewRequestAndReleaseNodes()
       throws SliderInternalStateException, TriggerClusterTeardownException {
     log.debug("in reviewRequestAndReleaseNodes()");
-    List<AbstractRMOperation> allOperations =
-      new ArrayList<AbstractRMOperation>();
+    List<AbstractRMOperation> allOperations = new ArrayList<>();
     for (RoleStatus roleStatus : getRoleStatusMap().values()) {
       if (!roleStatus.getExcludeFromFlexing()) {
         List<AbstractRMOperation> operations = reviewOneRole(roleStatus);
@@ -1426,7 +1424,7 @@ public class AppState implements StateAc
    */
   public List<AbstractRMOperation> reviewOneRole(RoleStatus role)
       throws SliderInternalStateException, TriggerClusterTeardownException {
-    List<AbstractRMOperation> operations = new ArrayList<AbstractRMOperation>();
+    List<AbstractRMOperation> operations = new ArrayList<>();
     int delta;
     String details;
     int expected;
@@ -1520,7 +1518,7 @@ public class AppState implements StateAc
     Collection<RoleInstance> targets = cloneActiveContainerList();
     log.info("Releasing {} containers", targets.size());
     List<AbstractRMOperation> operations =
-      new ArrayList<AbstractRMOperation>(targets.size());
+      new ArrayList<>(targets.size());
     for (RoleInstance instance : targets) {
       Container possible = instance.container;
       ContainerId id = possible.getId();

Modified: incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java
URL: http://svn.apache.org/viewvc/incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java?rev=1595941&r1=1595940&r2=1595941&view=diff
==============================================================================
--- incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java (original)
+++ incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java Mon May 19 15:56:46 2014
@@ -41,7 +41,7 @@ public class NodeInstance {
    */
   public NodeInstance(String hostname, int roles) {
     this.hostname = hostname;
-    nodeEntries = new ArrayList<NodeEntry>(roles);
+    nodeEntries = new ArrayList<>(roles);
   }
 
   /**

Modified: incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeMap.java
URL: http://svn.apache.org/viewvc/incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeMap.java?rev=1595941&r1=1595940&r2=1595941&view=diff
==============================================================================
--- incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeMap.java (original)
+++ incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeMap.java Mon May 19 15:56:46 2014
@@ -73,7 +73,7 @@ public class NodeMap extends HashMap<Str
    * in that role
    */
   public List<NodeInstance> listActiveNodes(int role) {
-    List<NodeInstance> nodes = new ArrayList<NodeInstance>();
+    List<NodeInstance> nodes = new ArrayList<>();
     for (NodeInstance instance : values()) {
       if (instance.getActiveRoleInstances(role) > 0) {
         nodes.add(instance);
@@ -113,9 +113,9 @@ public class NodeMap extends HashMap<Str
    * @return a possibly empty list of nodes.
    */
   public List<NodeInstance> findNodesForRelease(int role, int count) {
-    List<NodeInstance> targets = new ArrayList<NodeInstance>(count);
+    List<NodeInstance> targets = new ArrayList<>(count);
     List<NodeInstance> active = listActiveNodes(role);
-    List<NodeInstance> multiple = new ArrayList<NodeInstance>();
+    List<NodeInstance> multiple = new ArrayList<>();
     int nodesRemaining = count;
     log.debug("searching for {} nodes with candidate set size {}",
               nodesRemaining, active.size());

Modified: incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
URL: http://svn.apache.org/viewvc/incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java?rev=1595941&r1=1595940&r2=1595941&view=diff
==============================================================================
--- incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java (original)
+++ incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java Mon May 19 15:56:46 2014
@@ -57,7 +57,7 @@ public final class OutstandingRequest {
   public final String hostname;
 
   /**
-   * requested time -only valid after {@link #buildContainerRequest(Resource, long)}
+   * requested time -only valid after buildContainerRequest(Resource, long)}
    */
   public long requestedTime;
 

Modified: incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequestTracker.java
URL: http://svn.apache.org/viewvc/incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequestTracker.java?rev=1595941&r1=1595940&r2=1595941&view=diff
==============================================================================
--- incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequestTracker.java (original)
+++ incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequestTracker.java Mon May 19 15:56:46 2014
@@ -43,7 +43,7 @@ public class OutstandingRequestTracker {
     LoggerFactory.getLogger(OutstandingRequestTracker.class);
 
   private Map<OutstandingRequest, OutstandingRequest> requests =
-    new HashMap<OutstandingRequest, OutstandingRequest>();
+    new HashMap<>();
 
   /**
    * Create a new request for the specific role. If a
@@ -161,7 +161,7 @@ public class OutstandingRequestTracker {
    * @return possibly empty list of hostnames
    */
   public synchronized List<NodeInstance> cancelOutstandingRequests(int role) {
-    List<NodeInstance> hosts = new ArrayList<NodeInstance>();
+    List<NodeInstance> hosts = new ArrayList<>();
     Iterator<Map.Entry<OutstandingRequest,OutstandingRequest>> iterator =
       requests.entrySet().iterator();
     while (iterator.hasNext()) {
@@ -178,6 +178,6 @@ public class OutstandingRequestTracker {
   }
   
   public synchronized List<OutstandingRequest> listOutstandingRequests() {
-    return new ArrayList<OutstandingRequest>(requests.values());
+    return new ArrayList<>(requests.values());
   }
 }

Modified: incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
URL: http://svn.apache.org/viewvc/incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java?rev=1595941&r1=1595940&r2=1595941&view=diff
==============================================================================
--- incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java (original)
+++ incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java Mon May 19 15:56:46 2014
@@ -60,7 +60,7 @@ public class RoleHistory {
     LoggerFactory.getLogger(RoleHistory.class);
   private final List<ProviderRole> providerRoles;
   private final Map<String, ProviderRole> providerRoleMap =
-    new HashMap<String, ProviderRole>();
+    new HashMap<>();
   private long startTime;
   /**
    * Time when saved
@@ -109,7 +109,7 @@ public class RoleHistory {
 
     resetAvailableNodeLists();
     outstandingRequests = new OutstandingRequestTracker();
-    Map<Integer, RoleStatus> roleStats = new HashMap<Integer, RoleStatus>();
+    Map<Integer, RoleStatus> roleStats = new HashMap<>();
 
 
     for (ProviderRole providerRole : providerRoles) {
@@ -141,7 +141,7 @@ public class RoleHistory {
    */
   public void addNewProviderRole(ProviderRole providerRole)
     throws BadConfigException {
-    Map<Integer, RoleStatus> roleStats = new HashMap<Integer, RoleStatus>();
+    Map<Integer, RoleStatus> roleStats = new HashMap<>();
 
 
     for (ProviderRole role : providerRoles) {
@@ -155,7 +155,7 @@ public class RoleHistory {
    * Clear the lists of available nodes
    */
   private synchronized void resetAvailableNodeLists() {
-    availableNodes = new HashMap<Integer, LinkedList<NodeInstance>>(roleSize);
+    availableNodes = new HashMap<>(roleSize);
   }
 
   /**
@@ -431,8 +431,8 @@ public class RoleHistory {
    */
   private LinkedList<NodeInstance> getOrCreateNodesForRoleId(int id) {
     LinkedList<NodeInstance> instances = availableNodes.get(id);
-    if (instances==null) {
-      instances = new LinkedList<NodeInstance>();
+    if (instances == null) {
+      instances = new LinkedList<>();
       availableNodes.put(id, instances);
     }
     return instances;
@@ -544,8 +544,8 @@ public class RoleHistory {
   }
 
   /**
-   * Get the node instance of a an address if defined
-   * @param addr address
+   * Get the node instance of a host if defined
+   * @param hostname hostname to look up
    * @return a node instance or null
    */
   public synchronized NodeInstance getExistingNodeInstance(String hostname) {
@@ -565,7 +565,7 @@ public class RoleHistory {
     List<Container> requested =
       new ArrayList<Container>(allocatedContainers.size());
     List<Container> unrequested =
-      new ArrayList<Container>(allocatedContainers.size());
+      new ArrayList<>(allocatedContainers.size());
     outstandingRequests.partitionRequests(this, allocatedContainers, requested, unrequested);
     
     //give the unrequested ones lower priority
@@ -742,7 +742,7 @@ public class RoleHistory {
    */
   @VisibleForTesting
   public List<NodeInstance> cloneAvailableList(int role) {
-    return new LinkedList<NodeInstance>(getOrCreateNodesForRoleId(role));
+    return new LinkedList<>(getOrCreateNodesForRoleId(role));
   }
 
   /**

Modified: incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleInstance.java
URL: http://svn.apache.org/viewvc/incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleInstance.java?rev=1595941&r1=1595940&r2=1595941&view=diff
==============================================================================
--- incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleInstance.java (original)
+++ incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleInstance.java Mon May 19 15:56:46 2014
@@ -18,6 +18,7 @@
 
 package org.apache.slider.server.appmaster.state;
 
+import com.google.common.base.Preconditions;
 import org.apache.hadoop.yarn.api.records.Container;
 import org.apache.hadoop.yarn.api.records.ContainerId;
 import org.apache.hadoop.yarn.api.records.NodeId;
@@ -88,13 +89,11 @@ public final class RoleInstance implemen
   public Object providerInfo;
 
   public RoleInstance(Container container) {
+    Preconditions.checkNotNull(container, "Null container");
+    Preconditions.checkState(container.getId() != null, 
+      "Null container ID");
+
     this.container = container;
-    if (container == null) {
-      throw new NullPointerException("Null container");
-    }
-    if (container.getId() == null) {
-      throw new NullPointerException("Null container ID");
-    }
     id = container.getId().toString();
     if (container.getNodeId() != null) {
       host = container.getNodeId().getHost();

Modified: incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleStatus.java
URL: http://svn.apache.org/viewvc/incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleStatus.java?rev=1595941&r1=1595940&r2=1595941&view=diff
==============================================================================
--- incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleStatus.java (original)
+++ incubator/slider/trunk/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleStatus.java Mon May 19 15:56:46 2014
@@ -246,7 +246,7 @@ public final class RoleStatus implements
    * @return a map for use in statistics reports
    */
   public Map<String, Integer> buildStatistics() {
-    Map<String, Integer> stats = new HashMap<String, Integer>();
+    Map<String, Integer> stats = new HashMap<>();
     stats.put(StatusKeys.STATISTICS_CONTAINERS_ACTIVE_REQUESTS, getRequested());
     stats.put(StatusKeys.STATISTICS_CONTAINERS_COMPLETED, getCompleted());
     stats.put(StatusKeys.STATISTICS_CONTAINERS_DESIRED, getDesired());