return new DeleteRecordsRequest.Builder(timeoutMs, entry.getValue());
MetadataRequest.Builder metadataRequest; if (metadata.needMetadataForAllTopics()) metadataRequest = MetadataRequest.Builder.allTopics(); else metadataRequest = new MetadataRequest.Builder(new ArrayList<>(metadata.topics()), metadata.allowAutoTopicCreation());
if (!request.isAllTopics() && request.topics().isEmpty()) return Collections.emptyMap();
checkErrorResponse(createListOffsetRequest(2), new UnknownServerException()); checkResponse(createListOffsetResponse(2), 2); checkRequest(MetadataRequest.Builder.allTopics().build((short) 2)); checkRequest(createMetadataRequest(1, singletonList("topic1"))); checkErrorResponse(createMetadataRequest(1, singletonList("topic1")), new UnknownServerException());
@Override AbstractRequest.Builder createRequest(int timeoutMs) { return new ListGroupsRequest.Builder();
fetcher.getTopicMetadata(new MetadataRequest.Builder(Collections.singletonList(topicName), false), time.timer(5000L));
client.isReady(node, time.milliseconds())); MetadataRequest.Builder builder = new MetadataRequest.Builder(Collections.<String>emptyList(), true); long now = time.milliseconds();
new MetadataRequest.Builder(Collections.singletonList(topic), true), timer); return topicMetadata.get(topic); } finally {
MetadataRequest metadataRequest1 = new MetadataRequest.Builder(Collections.singletonList("sometopic"), true).build(); RequestHeader metadataRequestHeader1 = new RequestHeader(ApiKeys.METADATA, metadataRequest1.version(), "someclient", 1); createClientConnection(SecurityProtocol.PLAINTEXT, node2); sendHandshakeRequestReceiveResponse(node2, (short) 1); MetadataRequest metadataRequest2 = new MetadataRequest.Builder(Collections.singletonList("sometopic"), true).build(); RequestHeader metadataRequestHeader2 = new RequestHeader(ApiKeys.METADATA, metadataRequest2.version(), "someclient", 2);
@Test public void testDisconnectDuringUserMetadataRequest() { // this test ensures that the default metadata updater does not intercept a user-initiated // metadata request when the remote node disconnects with the request in-flight. awaitReady(client, node); MetadataRequest.Builder builder = new MetadataRequest.Builder(Collections.<String>emptyList(), true); long now = time.milliseconds(); ClientRequest request = client.newClientRequest(node.idString(), builder, now, true); client.send(request, now); client.poll(defaultRequestTimeoutMs, now); assertEquals(1, client.inFlightRequestCount(node.idString())); assertTrue(client.hasInFlightRequests(node.idString())); assertTrue(client.hasInFlightRequests()); selector.close(node.idString()); List<ClientResponse> responses = client.poll(defaultRequestTimeoutMs, time.milliseconds()); assertEquals(1, responses.size()); assertTrue(responses.iterator().next().wasDisconnected()); }
private MetadataRequest createMetadataRequest(int version, List<String> topics) { return new MetadataRequest.Builder(topics, true).build((short) version); }
@Override AbstractRequest.Builder createRequest(int timeoutMs) { return new MetadataRequest.Builder(new ArrayList<>(topics), false); }
@Test(expected = IllegalStateException.class) public void testSendToUnreadyNode() { MetadataRequest.Builder builder = new MetadataRequest.Builder(Arrays.asList("test"), true); long now = time.milliseconds(); ClientRequest request = client.newClientRequest("5", builder, now, false); client.send(request, now); client.poll(1, time.milliseconds()); }
@Test public void testGetTopicMetadataUnknownTopic() { client.prepareResponse(newMetadataResponse(topicName, Errors.UNKNOWN_TOPIC_OR_PARTITION)); Map<String, List<PartitionInfo>> topicMetadata = fetcher.getTopicMetadata( new MetadataRequest.Builder(Collections.singletonList(topicName), true), time.timer(5000L)); assertNull(topicMetadata.get(topicName)); }
@Override AbstractRequest.Builder createRequest(int timeoutMs) { // Since this only requests node information, it's safe to pass true for allowAutoTopicCreation (and it // simplifies communication with older brokers) return new MetadataRequest.Builder(Collections.emptyList(), true); }
@Test public void testGetTopicMetadataLeaderNotAvailable() { client.prepareResponse(newMetadataResponse(topicName, Errors.LEADER_NOT_AVAILABLE)); client.prepareResponse(newMetadataResponse(topicName, Errors.NONE)); Map<String, List<PartitionInfo>> topicMetadata = fetcher.getTopicMetadata( new MetadataRequest.Builder(Collections.singletonList(topicName), true), time.timer(5000L)); assertTrue(topicMetadata.containsKey(topicName)); }
@Override public AbstractRequest.Builder createRequest(int timeoutMs) { // Since this only requests node information, it's safe to pass true // for allowAutoTopicCreation (and it simplifies communication with // older brokers) return new MetadataRequest.Builder(Collections.emptyList(), true); }
/** * Get topic metadata for all topics in the cluster * @param timer Timer bounding how long this method can block * @return The map of topics with their partition information */ public Map<String, List<PartitionInfo>> getAllTopicMetadata(Timer timer) { return getTopicMetadata(MetadataRequest.Builder.allTopics(), timer); }
@Override AbstractRequest.Builder createRequest(int timeoutMs) { return MetadataRequest.Builder.allTopics(); }
@Override AbstractRequest.Builder createRequest(int timeoutMs) { return new MetadataRequest.Builder(Collections.emptyList(), true); }