Search in sources :

Example 1 with EchoAction

use of org.smartdata.action.EchoAction in project SSM by Intel-bigdata.

the class TestCmdletExecutor method testCmdletExecutor.

@Test
public void testCmdletExecutor() throws InterruptedException {
    final List<StatusMessage> statusMessages = new ArrayList<>();
    StatusReporter reporter = new StatusReporter() {

        @Override
        public void report(StatusMessage status) {
            statusMessages.add(status);
        }
    };
    CmdletExecutor executor = new CmdletExecutor(new SmartConf());
    StatusReportTask statusReportTask = new StatusReportTask(reporter, executor, new SmartConf());
    ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(statusReportTask, 100, 10, TimeUnit.MILLISECONDS);
    SmartAction action = new EchoAction();
    Map<String, String> args = new HashMap<>();
    args.put(EchoAction.PRINT_MESSAGE, "message success");
    action.setArguments(args);
    action.setActionId(101);
    Cmdlet cmdlet = new Cmdlet(Arrays.asList(action));
    executor.execute(cmdlet);
    Thread.sleep(2000);
    StatusReport lastReport = (StatusReport) statusMessages.get(statusMessages.size() - 1);
    ActionStatus status = lastReport.getActionStatuses().get(0);
    Assert.assertTrue(status.isFinished());
    Assert.assertNull(status.getThrowable());
    executor.shutdown();
}
Also used : ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) StatusMessage(org.smartdata.protocol.message.StatusMessage) ActionStatus(org.smartdata.protocol.message.ActionStatus) StatusReport(org.smartdata.protocol.message.StatusReport) SmartAction(org.smartdata.action.SmartAction) SmartConf(org.smartdata.conf.SmartConf) StatusReporter(org.smartdata.protocol.message.StatusReporter) EchoAction(org.smartdata.action.EchoAction) Test(org.junit.Test)

Aggregations

ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)1 Test (org.junit.Test)1 EchoAction (org.smartdata.action.EchoAction)1 SmartAction (org.smartdata.action.SmartAction)1 SmartConf (org.smartdata.conf.SmartConf)1 ActionStatus (org.smartdata.protocol.message.ActionStatus)1 StatusMessage (org.smartdata.protocol.message.StatusMessage)1 StatusReport (org.smartdata.protocol.message.StatusReport)1 StatusReporter (org.smartdata.protocol.message.StatusReporter)1