@Override public byte[] getData() { return taskMessage.getTaskData(); }
/** * Deserialize message to the worker-under-test result using configured {@link Codec} implementation. * * @param message the message * @param resultClass the result class * @return the t result * @throws CodecException the codec exception */ protected TResult deserializeMessage(TaskMessage message, Class<TResult> resultClass) throws CodecException { if (message.getTaskStatus() != TaskStatus.RESULT_SUCCESS && message.getTaskStatus() != TaskStatus.RESULT_FAILURE) { throw new AssertionError("Task status was failure."); } TResult workerResult = codec.deserialise(message.getTaskData(), resultClass); return workerResult; }
private void writeRawMessageFile(TaskMessage taskMessage, String messageOutputDir) throws IOException, CodecException { if (saveTaskDataOnly) { outputHelper.outputString(messageOutputDir, FileNameHelper.getRawTaskMessageFilename(), org.apache.commons.io.IOUtils.toString(codec.serialise(taskMessage.getTaskData()))); } else { outputHelper.outputString(messageOutputDir, FileNameHelper.getRawTaskMessageFilename(), org.apache.commons.io.IOUtils.toString(codec.serialise(taskMessage))); } }
final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, executeMessage); byte[] returnedTaskData = resultWrapper.getTaskData();
@Test public void ClassifyInvalidSequenceId() throws CodecException, IOException, TimeoutException, InterruptedException { final String taskId = UUID.randomUUID().toString(); String taskClassifier = PolicyWorkerConstants.WORKER_NAME; String collectionSequenceId = "999999999"; //generating a sequence id that we aren't expecting to exist Boolean executePolicy = false; List<String> collectionSequenceIds = new ArrayList<>(); collectionSequenceIds.add(collectionSequenceId); Multimap<String, String> metadata = ArrayListMultimap.create(); metadata.put("afield", String.valueOf(1L)); Document document = TestDocumentHelper.createDocument(metadata); TaskMessage classifyMessage = createPolicyWorkerTaskMessage(taskId, taskClassifier, document, collectionSequenceIds, executePolicy); Channel inputChannel = rabbitConnection.createChannel(); Channel resultsChannel = rabbitConnection.createChannel(); //send task to input queue BlockingQueue<Event<QueuePublisher>> pubEvents = createRabbitPublisher(inputChannel); //set up results queue consumer BlockingQueue<Event<QueueConsumer>> conEvents = new LinkedBlockingQueue<>(); ConsumerCreationResult consumerResult = createRabbitConsumer(resultsChannel, conEvents, RESULT_QUEUENAME, 1, taskId); try { final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, classifyMessage); byte[] returnedTaskData = resultWrapper.getTaskData(); checkTaskMessageReturnedTaskStatus(resultWrapper, taskId, TaskStatus.INVALID_TASK); } finally { closeRabbitConnections(resultsChannel, consumerResult); } }
@Test public void ClassifyDocumentNoWorkerInputConverterTest() throws WorkerException, IOException, QueueException, TimeoutException, InterruptedException, CodecException { final String taskId = UUID.randomUUID().toString(); String taskClassifier = "aaaaaaaaaaaaa"; //Invalid InputConverter, expecting task to be rejected String collectionSequenceId = collectionSequence.id.toString(); Boolean executePolicy = false; List<String> collectionSequenceIds = new ArrayList<>(); collectionSequenceIds.add(collectionSequenceId); Multimap<String, String> metadata = ArrayListMultimap.create(); metadata.put("afield", String.valueOf(1L)); Document document = TestDocumentHelper.createDocument(metadata); TaskMessage classifyMessage = createPolicyWorkerTaskMessage(taskId, taskClassifier, document, collectionSequenceIds, executePolicy); Channel inputChannel = rabbitConnection.createChannel(); Channel resultsChannel = rabbitConnection.createChannel(); //send task to input queue BlockingQueue<Event<QueuePublisher>> pubEvents = createRabbitPublisher(inputChannel); //set up results queue consumer BlockingQueue<Event<QueueConsumer>> conEvents = new LinkedBlockingQueue<>(); ConsumerCreationResult consumerResult = createRabbitConsumer(resultsChannel, conEvents, RESULT_QUEUENAME, 1, taskId); try { final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, classifyMessage); byte[] returnedTaskData = resultWrapper.getTaskData(); //check that task has status of Invalid_task. checkTaskMessageReturnedTaskStatus(resultWrapper, taskId, TaskStatus.INVALID_TASK); } finally { closeRabbitConnections(resultsChannel, consumerResult); } }
final String invalidTaskInfo = new String(resultWrapper.getTaskData(), StandardCharsets.UTF_8);
final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, executeMessage); byte[] returnedTaskData = resultWrapper.getTaskData();
private void writeMessageWithTaskGrouping(TaskMessage taskMessage, String messageAsStr) throws IOException, CodecException { //if the task data represents type 'SharedDocument' then additional files should be output SharedDocument document = null; try{ document = codec.deserialise(taskMessage.getTaskData(), SharedDocument.class); } catch(CodecException e){ LOGGER.debug("Error deserializing task data to SharedDocument. Avoiding output of document specific files."); } String folderName = null; if(document!=null) { folderName = outputHelper.createFolderFromDocument(document, outputDirectory); } else{ folderName = outputHelper.createFolderFromTaskMessageId(taskMessage, outputDirectory); } writeMessageDetails(taskMessage, messageAsStr, folderName); if(document!=null){ writeSharedDocumentDetails(taskMessage, messageAsStr, document, folderName); } }
failure.failureTime = new Date(); failure.failureSource = getWorkerName(tm); final byte[] taskData = tm.getTaskData(); if (taskData != null) { failure.failureMessage = new String(taskData, StandardCharsets.UTF_8);
byte[] returnedTaskData = resultWrapper.getTaskData();
final Codec codec = new JsonCodec(); byte[] returnedTaskData = resultWrapper.getTaskData();
final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, classifyMessage); byte[] returnedTaskData = resultWrapper.getTaskData(); checkTaskMessageReturned(resultWrapper, taskId);
final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, classifyMessage); byte[] returnedTaskData = resultWrapper.getTaskData(); checkTaskMessageReturned(resultWrapper, taskId);
final Codec codec = new JsonCodec(); byte[] returnedTaskData = resultWrapper.getTaskData();
final Codec codec = new JsonCodec(); byte[] returnedTaskData = resultWrapper.getTaskData();
final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, classifyMessage); byte[] returnedTaskData = resultWrapper.getTaskData();
final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, classifyMessage); byte[] returnedTaskData = resultWrapper.getTaskData(); checkTaskMessageReturned(resultWrapper, taskId);
final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, classifyMessage); byte[] returnedTaskData = resultWrapper.getTaskData();
final TaskMessage resultWrapper = publishTaskAndAwaitThisMessagesResponse(pubEvents, consumerResult, classifyMessage); byte[] returnedTaskData = resultWrapper.getTaskData();