@ Override public void onNext ( final RemoteMessage < EvaluatorShimProtocol . EvaluatorShimControlProto > remoteMessage ) { final EvaluatorShimProtocol . EvaluatorShimCommand command = remoteMessage . getMessage ( ) . getCommand ( ) ; switch ( command ) { case LAUNCH_EVALUATOR : LOG . log ( Level . INFO , "Received a command to launch the Evaluator." ) ; this . threadPool . submit ( new Runnable ( ) { @ Override public void run ( ) { EvaluatorShim . this . onEvaluatorLaunch ( remoteMessage . getMessage ( ) . getEvaluatorLaunchCommand ( ) , remoteMessage . getMessage ( ) . getEvaluatorConfigString ( ) , remoteMessage . getMessage ( ) . getEvaluatorFileResourcesUrl ( ) ) ; } } ) ; break ; case TERMINATE : LOG . log ( Level . INFO , "Received a command to terminate the EvaluatorShim." ) ; this . threadPool . submit ( new Runnable ( ) { @ Override public void run ( ) { EvaluatorShim . this . onStop ( ) ; } } ) ; break ; default : LOG . log ( Level . WARNING , "An unknown command was received by the EvaluatorShim: {0}." , command ) ; throw new IllegalArgumentException ( "An unknown command was received by the EvaluatorShim." ) ; } }
This method is invoked by the Remote Manager when a command message from the Driver is received .