Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.apache.helix.controller.stages;
  
  /*
   * 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.
  */
 
 import java.util.List;
 import java.util.Map;
 
For each LiveInstances select currentState and message whose sessionId matches sessionId from LiveInstance Get Partition,State for all the resources computed in previous State [ResourceComputationStage]
 
   @Override
   public void process(ClusterEvent eventthrows Exception {
     Cluster cluster = event.getAttribute("ClusterDataCache");
     Map<ResourceIdResourceConfigresourceMap =
         event.getAttribute(..toString());
 
     if (cluster == null || resourceMap == null) {
       throw new StageException("Missing attributes in event:" + event
           + ". Requires DataCache|RESOURCE");
     }
 
     ResourceCurrentState currentStateOutput = new ResourceCurrentState();
 
     for (Participant liveParticipant : cluster.getLiveParticipantMap().values()) {
       ParticipantId participantId = liveParticipant.getId();
 
       // add pending messages
       Map<MessageIdMessageinstanceMsgs = liveParticipant.getMessageMap();
       for (Message message : instanceMsgs.values()) {
         if (!..toString().equalsIgnoreCase(message.getMsgType())) {
           continue;
         }
 
         if (!liveParticipant.getRunningInstance().getSessionId()
             .equals(message.getTypedTgtSessionId())) {
           continue;
         }
 
         ResourceId resourceId = message.getResourceId();
         ResourceConfig resource = resourceMap.get(resourceId);
         if (resource == null) {
           continue;
         }
 
         if (!message.getBatchMessageMode()) {
           PartitionId partitionId = message.getPartitionId();
           Partition partition = resource.getSubUnit(partitionId);
           if (partition != null) {
             currentStateOutput.setPendingState(resourceIdpartitionIdparticipantId,
                 message.getTypedToState());
           } else {
             // log
           }
         } else {
           List<PartitionIdpartitionNames = message.getPartitionIds();
           if (!partitionNames.isEmpty()) {
             for (PartitionId partitionId : partitionNames) {
               Partition partition = resource.getSubUnit(partitionId);
               if (partition != null) {
                 currentStateOutput.setPendingState(resourceIdpartitionIdparticipantId,
                     message.getTypedToState());
               } else {
                // log
              }
            }
          }
        }
      }
      // add current state
      SessionId sessionId = liveParticipant.getRunningInstance().getSessionId();
      Map<ResourceIdCurrentStatecurStateMap = liveParticipant.getCurrentStateMap();
      for (CurrentState curState : curStateMap.values()) {
        if (!sessionId.equals(curState.getTypedSessionId())) {
          continue;
        }
        ResourceId resourceId = curState.getResourceId();
        StateModelDefId stateModelDefId = curState.getStateModelDefId();
        ResourceConfig resource = resourceMap.get(resourceId);
        if (resource == null) {
          continue;
        }
        if (stateModelDefId != null) {
          currentStateOutput.setResourceStateModelDef(resourceIdstateModelDefId);
        }
        currentStateOutput.setBucketSize(resourceIdcurState.getBucketSize());
        Map<PartitionIdStatepartitionStateMap = curState.getTypedPartitionStateMap();
        for (PartitionId partitionId : partitionStateMap.keySet()) {
          currentStateOutput.setCurrentState(resourceIdpartitionIdparticipantId,
              curState.getState(partitionId));
        }
      }
    }
    event.addAttribute(..toString(), currentStateOutput);
  }
New to GrepCode? Check out our FAQ X