use of com.yahoo.messagebus.Message in project vespa by vespa-engine.
the class MbusRequestContext method processingDone.
@Override
public void processingDone(List<Processing> processings) {
List<DocumentMessage> messages = new ArrayList<>();
if (messageFactory != null) {
for (Processing processing : processings) {
for (DocumentOperation documentOperation : processing.getDocumentOperations()) {
messages.add(messageFactory.fromDocumentOperation(processing, documentOperation));
}
}
}
if (log.isLoggable(LogLevel.DEBUG)) {
log.log(LogLevel.DEBUG, "Forwarding " + messages.size() + " messages from " + processings.size() + " processings.");
}
if (messages.isEmpty()) {
dispatchResponse(Response.Status.OK);
return;
}
long inputSequenceId = requestMsg.getSequenceId();
ResponseMerger responseHandler = new ResponseMerger(requestMsg, messages.size(), this);
for (Message message : messages) {
// See comment for internalNoThrottledSource.
dispatchRequest(message, (inputSequenceId == message.getSequenceId()) ? getUri().getPath() : "/" + internalNoThrottledSource, responseHandler);
}
}
use of com.yahoo.messagebus.Message in project vespa by vespa-engine.
the class GetSearcherTestCase method testConfig.
@Test
public void testConfig() throws Exception {
DocumentSessionFactory factory = new DocumentSessionFactory(docType);
GetSearcher searcher = new GetSearcher(new FeedContext(new MessagePropertyProcessor(new FeederConfig(new FeederConfig.Builder().timeout(58).route("route66").retryenabled(false)), defLoadTypeCfg), factory, docMan, new ClusterList(), new NullFeedMetric()));
Chain<Searcher> searchChain = new Chain<>(searcher);
Result result = new Execution(searchChain, Execution.Context.createContextStub()).search(newQuery("?id=doc:batman:dahnahnahnah"));
assertEquals(1, factory.messages.size());
{
Message m = factory.messages.get(0);
assertEquals(DocumentProtocol.MESSAGE_GETDOCUMENT, m.getType());
GetDocumentMessage gdm = (GetDocumentMessage) m;
DocumentId d = gdm.getDocumentId();
assertEquals("doc:batman:dahnahnahnah", d.toString());
assertEquals("[all]", gdm.getFieldSet());
assertEquals(Route.parse("route66"), gdm.getRoute());
assertFalse(gdm.getRetryEnabled());
assertTrue(58000 >= gdm.getTimeRemaining());
}
}
use of com.yahoo.messagebus.Message in project vespa by vespa-engine.
the class GetSearcherTestCase method testConfigChanges.
@Test
public void testConfigChanges() throws Exception {
String config = "raw:timeout 37\nroute \"riksveg18\"\nretryenabled true";
DocumentSessionFactory factory = new DocumentSessionFactory(docType);
GetSearcher searcher = new GetSearcher(new FeedContext(new MessagePropertyProcessor(new FeederConfig(new FeederConfig.Builder().timeout(58).route("riksveg18").retryenabled(true)), defLoadTypeCfg), factory, docMan, new ClusterList(), new NullFeedMetric()));
Chain<Searcher> searchChain = new Chain<>(searcher);
new Execution(searchChain, Execution.Context.createContextStub()).search(newQuery("?id=doc:batman:dahnahnahnah"));
assertEquals(1, factory.messages.size());
assertEquals(1, factory.getSessionsCreated());
{
Message m = factory.messages.get(0);
assertEquals(DocumentProtocol.MESSAGE_GETDOCUMENT, m.getType());
GetDocumentMessage gdm = (GetDocumentMessage) m;
DocumentId d = gdm.getDocumentId();
assertEquals("doc:batman:dahnahnahnah", d.toString());
assertEquals("[all]", gdm.getFieldSet());
assertEquals(Route.parse("riksveg18"), gdm.getRoute());
assertTrue(gdm.getRetryEnabled());
assertTrue(58000 >= gdm.getTimeRemaining());
}
factory.messages.clear();
FeederConfig newConfig = new FeederConfig(new FeederConfig.Builder().timeout(123).route("e6").retryenabled(false));
searcher.getMessagePropertyProcessor().configure(newConfig, defLoadTypeCfg);
new Execution(searchChain, Execution.Context.createContextStub()).search(newQuery("?id=doc:spiderman:does_whatever_a_spider_can"));
// riksveg18 is created again, and e6 is created as well.
assertEquals(3, factory.getSessionsCreated());
assertEquals(1, factory.messages.size());
{
Message m = factory.messages.get(0);
assertEquals(DocumentProtocol.MESSAGE_GETDOCUMENT, m.getType());
GetDocumentMessage gdm = (GetDocumentMessage) m;
DocumentId d = gdm.getDocumentId();
assertEquals("doc:spiderman:does_whatever_a_spider_can", d.toString());
assertEquals("[all]", gdm.getFieldSet());
assertEquals(Route.parse("e6"), gdm.getRoute());
assertFalse(gdm.getRetryEnabled());
assertTrue(123000 >= gdm.getTimeRemaining());
}
}
use of com.yahoo.messagebus.Message in project vespa by vespa-engine.
the class DocumentOperationMessageV3 method newErrorMessage.
static DocumentOperationMessageV3 newErrorMessage(String operationId, Exception exception) {
Message feedErrorMessageV3 = new FeedErrorMessage(operationId);
DocumentOperationMessageV3 msg = new DocumentOperationMessageV3(operationId, feedErrorMessageV3);
Hop hop = new Hop();
hop.addDirective(new ErrorDirective(Exceptions.toMessageString(exception)));
Route route = new Route();
route.addHop(hop);
feedErrorMessageV3.setRoute(route);
return msg;
}
use of com.yahoo.messagebus.Message in project vespa by vespa-engine.
the class DocumentOperationMessageV3 method newUpdateMessage.
static DocumentOperationMessageV3 newUpdateMessage(VespaXMLFeedReader.Operation op, String operationId) {
DocumentUpdate update = op.getDocumentUpdate();
update.setCondition(op.getCondition());
Message msg = new UpdateDocumentMessage(update);
String id = (operationId == null) ? update.getId().toString() : operationId;
return new DocumentOperationMessageV3(id, msg);
}
Aggregations