Search in sources :

Example 21 with Arrays.asList

use of java.util.Arrays.asList in project kafka by apache.

the class KafkaAdminClientTest method testListOffsetsMaxTimestampUnsupportedMultipleOffsetSpec.

@Test
public void testListOffsetsMaxTimestampUnsupportedMultipleOffsetSpec() throws Exception {
    Node node = new Node(0, "localhost", 8120);
    List<Node> nodes = Collections.singletonList(node);
    List<PartitionInfo> pInfos = new ArrayList<>();
    pInfos.add(new PartitionInfo("foo", 0, node, new Node[] { node }, new Node[] { node }));
    pInfos.add(new PartitionInfo("foo", 1, node, new Node[] { node }, new Node[] { node }));
    final Cluster cluster = new Cluster("mockClusterId", nodes, pInfos, Collections.emptySet(), Collections.emptySet(), node);
    final TopicPartition tp0 = new TopicPartition("foo", 0);
    final TopicPartition tp1 = new TopicPartition("foo", 1);
    try (AdminClientUnitTestEnv env = new AdminClientUnitTestEnv(cluster, AdminClientConfig.RETRIES_CONFIG, "2")) {
        env.kafkaClient().setNodeApiVersions(NodeApiVersions.create(ApiKeys.LIST_OFFSETS.id, (short) 0, (short) 6));
        env.kafkaClient().prepareResponse(prepareMetadataResponse(cluster, Errors.NONE));
        // listoffsets response from broker 0
        env.kafkaClient().prepareUnsupportedVersionResponse(request -> request instanceof ListOffsetsRequest);
        ListOffsetsTopicResponse topicResponse = ListOffsetsResponse.singletonListOffsetsTopicResponse(tp1, Errors.NONE, -1L, 345L, 543);
        ListOffsetsResponseData responseData = new ListOffsetsResponseData().setThrottleTimeMs(0).setTopics(Arrays.asList(topicResponse));
        env.kafkaClient().prepareResponseFrom(// ensure that no max timestamp requests are retried
        request -> request instanceof ListOffsetsRequest && ((ListOffsetsRequest) request).topics().stream().flatMap(t -> t.partitions().stream()).noneMatch(p -> p.timestamp() == ListOffsetsRequest.MAX_TIMESTAMP), new ListOffsetsResponse(responseData), node);
        ListOffsetsResult result = env.adminClient().listOffsets(new HashMap<TopicPartition, OffsetSpec>() {

            {
                put(tp0, OffsetSpec.maxTimestamp());
                put(tp1, OffsetSpec.latest());
            }
        });
        TestUtils.assertFutureThrows(result.partitionResult(tp0), UnsupportedVersionException.class);
        ListOffsetsResultInfo tp1Offset = result.partitionResult(tp1).get();
        assertEquals(345L, tp1Offset.offset());
        assertEquals(543, tp1Offset.leaderEpoch().get().intValue());
        assertEquals(-1L, tp1Offset.timestamp());
    }
}
Also used : ListGroupsResponse(org.apache.kafka.common.requests.ListGroupsResponse) ThrottlingQuotaExceededException(org.apache.kafka.common.errors.ThrottlingQuotaExceededException) ListOffsetsRequest(org.apache.kafka.common.requests.ListOffsetsRequest) ClientQuotaFilter(org.apache.kafka.common.quota.ClientQuotaFilter) AclPermissionType(org.apache.kafka.common.acl.AclPermissionType) LeaveGroupRequest(org.apache.kafka.common.requests.LeaveGroupRequest) KafkaException(org.apache.kafka.common.KafkaException) ListTransactionsRequest(org.apache.kafka.common.requests.ListTransactionsRequest) Collections.singletonList(java.util.Collections.singletonList) ClientUtils(org.apache.kafka.clients.ClientUtils) Future(java.util.concurrent.Future) DescribeTransactionsRequest(org.apache.kafka.common.requests.DescribeTransactionsRequest) PartitionResult(org.apache.kafka.common.message.ElectLeadersResponseData.PartitionResult) Arrays.asList(java.util.Arrays.asList) Map(java.util.Map) DeletableTopicResultCollection(org.apache.kafka.common.message.DeleteTopicsResponseData.DeletableTopicResultCollection) DescribeLogDirsResponseData(org.apache.kafka.common.message.DescribeLogDirsResponseData) ClientQuotaAlteration(org.apache.kafka.common.quota.ClientQuotaAlteration) AlterReplicaLogDirTopicResult(org.apache.kafka.common.message.AlterReplicaLogDirsResponseData.AlterReplicaLogDirTopicResult) AlterReplicaLogDirsResponseData(org.apache.kafka.common.message.AlterReplicaLogDirsResponseData) ListGroupsRequest(org.apache.kafka.common.requests.ListGroupsRequest) CountDownLatch(java.util.concurrent.CountDownLatch) DeleteTopicsResponseData(org.apache.kafka.common.message.DeleteTopicsResponseData) Stream(java.util.stream.Stream) ApiMessageType(org.apache.kafka.common.message.ApiMessageType) MetadataResponsePartition(org.apache.kafka.common.message.MetadataResponseData.MetadataResponsePartition) DescribeGroupsResponse(org.apache.kafka.common.requests.DescribeGroupsResponse) ListOffsetsTopicResponse(org.apache.kafka.common.message.ListOffsetsResponseData.ListOffsetsTopicResponse) Errors(org.apache.kafka.common.protocol.Errors) Node(org.apache.kafka.common.Node) UnknownTopicOrPartitionException(org.apache.kafka.common.errors.UnknownTopicOrPartitionException) DescribedGroupMember(org.apache.kafka.common.message.DescribeGroupsResponseData.DescribedGroupMember) NodeApiVersions(org.apache.kafka.clients.NodeApiVersions) AuthenticationException(org.apache.kafka.common.errors.AuthenticationException) Assertions.fail(org.junit.jupiter.api.Assertions.fail) AlterUserScramCredentialsResponseData(org.apache.kafka.common.message.AlterUserScramCredentialsResponseData) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) CreatableTopicResultCollection(org.apache.kafka.common.message.CreateTopicsResponseData.CreatableTopicResultCollection) AlterUserScramCredentialsResponse(org.apache.kafka.common.requests.AlterUserScramCredentialsResponse) ClientDnsLookup(org.apache.kafka.clients.ClientDnsLookup) DescribeClusterResponse(org.apache.kafka.common.requests.DescribeClusterResponse) WriteTxnMarkersRequest(org.apache.kafka.common.requests.WriteTxnMarkersRequest) DescribeClusterBroker(org.apache.kafka.common.message.DescribeClusterResponseData.DescribeClusterBroker) DescribeAclsResponse(org.apache.kafka.common.requests.DescribeAclsResponse) WriteTxnMarkersResponseData(org.apache.kafka.common.message.WriteTxnMarkersResponseData) SecurityDisabledException(org.apache.kafka.common.errors.SecurityDisabledException) AlterReplicaLogDirsResponse(org.apache.kafka.common.requests.AlterReplicaLogDirsResponse) OptionalLong(java.util.OptionalLong) UnregisterBrokerResponseData(org.apache.kafka.common.message.UnregisterBrokerResponseData) UpdateFeaturesRequest(org.apache.kafka.common.requests.UpdateFeaturesRequest) OffsetCommitResponse(org.apache.kafka.common.requests.OffsetCommitResponse) DescribeTransactionsResponseData(org.apache.kafka.common.message.DescribeTransactionsResponseData) ResourcePattern(org.apache.kafka.common.resource.ResourcePattern) OffsetDeleteResponsePartitionCollection(org.apache.kafka.common.message.OffsetDeleteResponseData.OffsetDeleteResponsePartitionCollection) ExecutionException(java.util.concurrent.ExecutionException) AtomicLong(java.util.concurrent.atomic.AtomicLong) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) IncrementalAlterConfigsResponse(org.apache.kafka.common.requests.IncrementalAlterConfigsResponse) MemberResponse(org.apache.kafka.common.message.LeaveGroupResponseData.MemberResponse) FilterResults(org.apache.kafka.clients.admin.DeleteAclsResult.FilterResults) JoinGroupRequest(org.apache.kafka.common.requests.JoinGroupRequest) GroupAuthorizationException(org.apache.kafka.common.errors.GroupAuthorizationException) DescribeUserScramCredentialsResponse(org.apache.kafka.common.requests.DescribeUserScramCredentialsResponse) CredentialInfo(org.apache.kafka.common.message.DescribeUserScramCredentialsResponseData.CredentialInfo) Assertions.assertNotEquals(org.junit.jupiter.api.Assertions.assertNotEquals) ClusterAuthorizationException(org.apache.kafka.common.errors.ClusterAuthorizationException) MemberIdentity(org.apache.kafka.common.message.LeaveGroupRequestData.MemberIdentity) DeletableGroupResult(org.apache.kafka.common.message.DeleteGroupsResponseData.DeletableGroupResult) LeaveGroupRequestData(org.apache.kafka.common.message.LeaveGroupRequestData) ReplicaElectionResult(org.apache.kafka.common.message.ElectLeadersResponseData.ReplicaElectionResult) DescribeConfigsResponseData(org.apache.kafka.common.message.DescribeConfigsResponseData) ApiVersionsResponseData(org.apache.kafka.common.message.ApiVersionsResponseData) TopicPartition(org.apache.kafka.common.TopicPartition) Time(org.apache.kafka.common.utils.Time) Collection(java.util.Collection) CreateAclsResponse(org.apache.kafka.common.requests.CreateAclsResponse) DescribeClusterRequest(org.apache.kafka.common.requests.DescribeClusterRequest) DescribeUserScramCredentialsResponseData(org.apache.kafka.common.message.DescribeUserScramCredentialsResponseData) DescribeTransactionsResponse(org.apache.kafka.common.requests.DescribeTransactionsResponse) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ResourceType(org.apache.kafka.common.resource.ResourceType) CreatePartitionsResponse(org.apache.kafka.common.requests.CreatePartitionsResponse) OffsetAndMetadata(org.apache.kafka.clients.consumer.OffsetAndMetadata) Uuid(org.apache.kafka.common.Uuid) DeleteTopicsRequest(org.apache.kafka.common.requests.DeleteTopicsRequest) ReassignablePartitionResponse(org.apache.kafka.common.message.AlterPartitionReassignmentsResponseData.ReassignablePartitionResponse) OffsetDeleteResponseTopicCollection(org.apache.kafka.common.message.OffsetDeleteResponseData.OffsetDeleteResponseTopicCollection) DeleteAclsResponse(org.apache.kafka.common.requests.DeleteAclsResponse) ListPartitionReassignmentsResponseData(org.apache.kafka.common.message.ListPartitionReassignmentsResponseData) AlterPartitionReassignmentsResponse(org.apache.kafka.common.requests.AlterPartitionReassignmentsResponse) CompletableFuture(java.util.concurrent.CompletableFuture) DescribeConfigsResponse(org.apache.kafka.common.requests.DescribeConfigsResponse) PatternType(org.apache.kafka.common.resource.PatternType) OptionalInt(java.util.OptionalInt) LeaveGroupResponse(org.apache.kafka.common.requests.LeaveGroupResponse) UnknownServerException(org.apache.kafka.common.errors.UnknownServerException) DeleteRecordsResponseData(org.apache.kafka.common.message.DeleteRecordsResponseData) HashSet(java.util.HashSet) AccessControlEntry(org.apache.kafka.common.acl.AccessControlEntry) AlterConfigsResourceResponse(org.apache.kafka.common.message.IncrementalAlterConfigsResponseData.AlterConfigsResourceResponse) TopicCollection(org.apache.kafka.common.TopicCollection) OngoingPartitionReassignment(org.apache.kafka.common.message.ListPartitionReassignmentsResponseData.OngoingPartitionReassignment) UnknownMemberIdException(org.apache.kafka.common.errors.UnknownMemberIdException) TimeoutException(org.apache.kafka.common.errors.TimeoutException) DeletableGroupResultCollection(org.apache.kafka.common.message.DeleteGroupsResponseData.DeletableGroupResultCollection) MockClient(org.apache.kafka.clients.MockClient) Logger(org.slf4j.Logger) GroupSubscribedToTopicException(org.apache.kafka.common.errors.GroupSubscribedToTopicException) CreateTopicsResponse(org.apache.kafka.common.requests.CreateTopicsResponse) Semaphore(java.util.concurrent.Semaphore) LeaveGroupResponseData(org.apache.kafka.common.message.LeaveGroupResponseData) ConfigException(org.apache.kafka.common.config.ConfigException) TopicAuthorizationException(org.apache.kafka.common.errors.TopicAuthorizationException) InvalidRequestException(org.apache.kafka.common.errors.InvalidRequestException) MockTime(org.apache.kafka.common.utils.MockTime) Arrays(java.util.Arrays) ApiVersionsRequest(org.apache.kafka.common.requests.ApiVersionsRequest) NotLeaderOrFollowerException(org.apache.kafka.common.errors.NotLeaderOrFollowerException) Cluster(org.apache.kafka.common.Cluster) ApiVersionsResponse(org.apache.kafka.common.requests.ApiVersionsResponse) ListOffsetsResponse(org.apache.kafka.common.requests.ListOffsetsResponse) DescribeAclsResponseData(org.apache.kafka.common.message.DescribeAclsResponseData) TestUtils(org.apache.kafka.test.TestUtils) InvalidTopicException(org.apache.kafka.common.errors.InvalidTopicException) Set(java.util.Set) PartitionInfo(org.apache.kafka.common.PartitionInfo) DeleteGroupsResponse(org.apache.kafka.common.requests.DeleteGroupsResponse) ListTransactionsResponse(org.apache.kafka.common.requests.ListTransactionsResponse) TopicDeletionDisabledException(org.apache.kafka.common.errors.TopicDeletionDisabledException) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) ConsumerGroupState(org.apache.kafka.common.ConsumerGroupState) CreatableTopicResult(org.apache.kafka.common.message.CreateTopicsResponseData.CreatableTopicResult) MetadataResponse(org.apache.kafka.common.requests.MetadataResponse) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) DescribeGroupsResponseData(org.apache.kafka.common.message.DescribeGroupsResponseData) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) RequestTestUtils(org.apache.kafka.common.requests.RequestTestUtils) ArrayList(java.util.ArrayList) Features(org.apache.kafka.common.feature.Features) OffsetDeleteResponsePartition(org.apache.kafka.common.message.OffsetDeleteResponseData.OffsetDeleteResponsePartition) CreateAclsResponseData(org.apache.kafka.common.message.CreateAclsResponseData) ElectionType(org.apache.kafka.common.ElectionType) FindCoordinatorResponseData(org.apache.kafka.common.message.FindCoordinatorResponseData) MetadataResponseTopic(org.apache.kafka.common.message.MetadataResponseData.MetadataResponseTopic) ListTransactionsResponseData(org.apache.kafka.common.message.ListTransactionsResponseData) FindCoordinatorRequest(org.apache.kafka.common.requests.FindCoordinatorRequest) OffsetFetchResponse(org.apache.kafka.common.requests.OffsetFetchResponse) UnknownTopicIdException(org.apache.kafka.common.errors.UnknownTopicIdException) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) ListGroupsResponseData(org.apache.kafka.common.message.ListGroupsResponseData) SaslAuthenticationException(org.apache.kafka.common.errors.SaslAuthenticationException) ValueSource(org.junit.jupiter.params.provider.ValueSource) AlterClientQuotasResponse(org.apache.kafka.common.requests.AlterClientQuotasResponse) TopicPartitionReplica(org.apache.kafka.common.TopicPartitionReplica) FencedInstanceIdException(org.apache.kafka.common.errors.FencedInstanceIdException) DeleteRecordsResponse(org.apache.kafka.common.requests.DeleteRecordsResponse) LEAVE_GROUP_REASON(org.apache.kafka.clients.admin.KafkaAdminClient.LEAVE_GROUP_REASON) AclOperation(org.apache.kafka.common.acl.AclOperation) DescribeClusterResponseData(org.apache.kafka.common.message.DescribeClusterResponseData) DeleteGroupsResponseData(org.apache.kafka.common.message.DeleteGroupsResponseData) UnsupportedVersionException(org.apache.kafka.common.errors.UnsupportedVersionException) WriteTxnMarkersResponse(org.apache.kafka.common.requests.WriteTxnMarkersResponse) ResourcePatternFilter(org.apache.kafka.common.resource.ResourcePatternFilter) CreatePartitionsResponseData(org.apache.kafka.common.message.CreatePartitionsResponseData) FindCoordinatorResponse(org.apache.kafka.common.requests.FindCoordinatorResponse) LoggerFactory(org.slf4j.LoggerFactory) CreatePartitionsTopicResult(org.apache.kafka.common.message.CreatePartitionsResponseData.CreatePartitionsTopicResult) AlterReplicaLogDirPartitionResult(org.apache.kafka.common.message.AlterReplicaLogDirsResponseData.AlterReplicaLogDirPartitionResult) ListPartitionReassignmentsResponse(org.apache.kafka.common.requests.ListPartitionReassignmentsResponse) ByteBuffer(java.nio.ByteBuffer) DescribeClientQuotasResponse(org.apache.kafka.common.requests.DescribeClientQuotasResponse) UpdateFeaturesResponse(org.apache.kafka.common.requests.UpdateFeaturesResponse) ReassignableTopicResponse(org.apache.kafka.common.message.AlterPartitionReassignmentsResponseData.ReassignableTopicResponse) DescribeProducersResponse(org.apache.kafka.common.requests.DescribeProducersResponse) Collections.singleton(java.util.Collections.singleton) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) UnregisterBrokerResponse(org.apache.kafka.common.requests.UnregisterBrokerResponse) CreatePartitionsRequest(org.apache.kafka.common.requests.CreatePartitionsRequest) RecordVersion(org.apache.kafka.common.record.RecordVersion) Collections.emptyList(java.util.Collections.emptyList) KafkaFuture(org.apache.kafka.common.KafkaFuture) LogDirNotFoundException(org.apache.kafka.common.errors.LogDirNotFoundException) InetSocketAddress(java.net.InetSocketAddress) ListOffsetsResponseData(org.apache.kafka.common.message.ListOffsetsResponseData) ListOffsetsResultInfo(org.apache.kafka.clients.admin.ListOffsetsResult.ListOffsetsResultInfo) TopicExistsException(org.apache.kafka.common.errors.TopicExistsException) List(java.util.List) DescribeProducersResponseData(org.apache.kafka.common.message.DescribeProducersResponseData) DeletableTopicResult(org.apache.kafka.common.message.DeleteTopicsResponseData.DeletableTopicResult) OffsetDeleteResponseData(org.apache.kafka.common.message.OffsetDeleteResponseData) Optional(java.util.Optional) CreateTopicsResponseData(org.apache.kafka.common.message.CreateTopicsResponseData) ConsumerProtocol(org.apache.kafka.clients.consumer.internals.ConsumerProtocol) ClientQuotaFilterComponent(org.apache.kafka.common.quota.ClientQuotaFilterComponent) CreateTopicsRequest(org.apache.kafka.common.requests.CreateTopicsRequest) ElectLeadersResponse(org.apache.kafka.common.requests.ElectLeadersResponse) AclBindingFilter(org.apache.kafka.common.acl.AclBindingFilter) DescribeLogDirsTopic(org.apache.kafka.common.message.DescribeLogDirsResponseData.DescribeLogDirsTopic) IncrementalAlterConfigsResponseData(org.apache.kafka.common.message.IncrementalAlterConfigsResponseData) AccessControlEntryFilter(org.apache.kafka.common.acl.AccessControlEntryFilter) HashMap(java.util.HashMap) DescribeProducersRequest(org.apache.kafka.common.requests.DescribeProducersRequest) LeaderNotAvailableException(org.apache.kafka.common.errors.LeaderNotAvailableException) ApiError(org.apache.kafka.common.requests.ApiError) ConfigResource(org.apache.kafka.common.config.ConfigResource) OffsetOutOfRangeException(org.apache.kafka.common.errors.OffsetOutOfRangeException) MetadataRequest(org.apache.kafka.common.requests.MetadataRequest) AclBinding(org.apache.kafka.common.acl.AclBinding) OffsetDeleteResponseTopic(org.apache.kafka.common.message.OffsetDeleteResponseData.OffsetDeleteResponseTopic) ClientQuotaEntity(org.apache.kafka.common.quota.ClientQuotaEntity) ApiVersion(org.apache.kafka.common.message.ApiVersionsResponseData.ApiVersion) OngoingTopicReassignment(org.apache.kafka.common.message.ListPartitionReassignmentsResponseData.OngoingTopicReassignment) ConsumerPartitionAssignor(org.apache.kafka.clients.consumer.ConsumerPartitionAssignor) Utils(org.apache.kafka.common.utils.Utils) Iterator(java.util.Iterator) Collections.emptySet(java.util.Collections.emptySet) DeleteAclsResponseData(org.apache.kafka.common.message.DeleteAclsResponseData) ApiKeys(org.apache.kafka.common.protocol.ApiKeys) TimeUnit(java.util.concurrent.TimeUnit) AlterPartitionReassignmentsResponseData(org.apache.kafka.common.message.AlterPartitionReassignmentsResponseData) DeleteTopicsResponse(org.apache.kafka.common.requests.DeleteTopicsResponse) MetadataResponseData(org.apache.kafka.common.message.MetadataResponseData) OffsetDeleteResponse(org.apache.kafka.common.requests.OffsetDeleteResponse) DescribeLogDirsResponse(org.apache.kafka.common.requests.DescribeLogDirsResponse) Timeout(org.junit.jupiter.api.Timeout) Collections(java.util.Collections) ApiException(org.apache.kafka.common.errors.ApiException) ListOffsetsResultInfo(org.apache.kafka.clients.admin.ListOffsetsResult.ListOffsetsResultInfo) ListOffsetsTopicResponse(org.apache.kafka.common.message.ListOffsetsResponseData.ListOffsetsTopicResponse) Node(org.apache.kafka.common.Node) ArrayList(java.util.ArrayList) Cluster(org.apache.kafka.common.Cluster) ListOffsetsResponseData(org.apache.kafka.common.message.ListOffsetsResponseData) ListOffsetsRequest(org.apache.kafka.common.requests.ListOffsetsRequest) TopicPartition(org.apache.kafka.common.TopicPartition) ListOffsetsResponse(org.apache.kafka.common.requests.ListOffsetsResponse) PartitionInfo(org.apache.kafka.common.PartitionInfo) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) Test(org.junit.jupiter.api.Test)

Example 22 with Arrays.asList

use of java.util.Arrays.asList in project kafka by apache.

the class FetcherTest method testReadCommittedWithCompactedTopic.

@Test
public void testReadCommittedWithCompactedTopic() {
    buildFetcher(OffsetResetStrategy.EARLIEST, new StringDeserializer(), new StringDeserializer(), Integer.MAX_VALUE, IsolationLevel.READ_COMMITTED);
    ByteBuffer buffer = ByteBuffer.allocate(1024);
    long pid1 = 1L;
    long pid2 = 2L;
    long pid3 = 3L;
    appendTransactionalRecords(buffer, pid3, 3L, new SimpleRecord("3".getBytes(), "value".getBytes()), new SimpleRecord("4".getBytes(), "value".getBytes()));
    appendTransactionalRecords(buffer, pid2, 15L, new SimpleRecord("15".getBytes(), "value".getBytes()), new SimpleRecord("16".getBytes(), "value".getBytes()), new SimpleRecord("17".getBytes(), "value".getBytes()));
    appendTransactionalRecords(buffer, pid1, 22L, new SimpleRecord("22".getBytes(), "value".getBytes()), new SimpleRecord("23".getBytes(), "value".getBytes()));
    abortTransaction(buffer, pid2, 28L);
    appendTransactionalRecords(buffer, pid3, 30L, new SimpleRecord("30".getBytes(), "value".getBytes()), new SimpleRecord("31".getBytes(), "value".getBytes()), new SimpleRecord("32".getBytes(), "value".getBytes()));
    commitTransaction(buffer, pid3, 35L);
    appendTransactionalRecords(buffer, pid1, 39L, new SimpleRecord("39".getBytes(), "value".getBytes()), new SimpleRecord("40".getBytes(), "value".getBytes()));
    // transaction from pid1 is aborted, but the marker is not included in the fetch
    buffer.flip();
    // send the fetch
    assignFromUser(singleton(tp0));
    subscriptions.seek(tp0, 0);
    assertEquals(1, fetcher.sendFetches());
    // prepare the response. the aborted transactions begin at offsets which are no longer in the log
    List<FetchResponseData.AbortedTransaction> abortedTransactions = Arrays.asList(new FetchResponseData.AbortedTransaction().setProducerId(pid2).setFirstOffset(6), new FetchResponseData.AbortedTransaction().setProducerId(pid1).setFirstOffset(0));
    client.prepareResponse(fullFetchResponseWithAbortedTransactions(MemoryRecords.readableRecords(buffer), abortedTransactions, Errors.NONE, 100L, 100L, 0));
    consumerClient.poll(time.timer(0));
    assertTrue(fetcher.hasCompletedFetches());
    Map<TopicPartition, List<ConsumerRecord<String, String>>> allFetchedRecords = fetchedRecords();
    assertTrue(allFetchedRecords.containsKey(tp0));
    List<ConsumerRecord<String, String>> fetchedRecords = allFetchedRecords.get(tp0);
    assertEquals(5, fetchedRecords.size());
    assertEquals(Arrays.asList(3L, 4L, 30L, 31L, 32L), collectRecordOffsets(fetchedRecords));
}
Also used : StringDeserializer(org.apache.kafka.common.serialization.StringDeserializer) ByteBuffer(java.nio.ByteBuffer) ConsumerRecord(org.apache.kafka.clients.consumer.ConsumerRecord) FetchResponseData(org.apache.kafka.common.message.FetchResponseData) TopicPartition(org.apache.kafka.common.TopicPartition) SimpleRecord(org.apache.kafka.common.record.SimpleRecord) Collections.singletonList(java.util.Collections.singletonList) Arrays.asList(java.util.Arrays.asList) ArrayList(java.util.ArrayList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) Test(org.junit.jupiter.api.Test)

Example 23 with Arrays.asList

use of java.util.Arrays.asList in project kafka by apache.

the class FetcherTest method testConsumingViaIncrementalFetchRequests.

@Test
public void testConsumingViaIncrementalFetchRequests() {
    buildFetcher(2);
    List<ConsumerRecord<byte[], byte[]>> records;
    assignFromUser(new HashSet<>(Arrays.asList(tp0, tp1)));
    subscriptions.seekValidated(tp0, new SubscriptionState.FetchPosition(0, Optional.empty(), metadata.currentLeader(tp0)));
    subscriptions.seekValidated(tp1, new SubscriptionState.FetchPosition(1, Optional.empty(), metadata.currentLeader(tp1)));
    // Fetch some records and establish an incremental fetch session.
    LinkedHashMap<TopicIdPartition, FetchResponseData.PartitionData> partitions1 = new LinkedHashMap<>();
    partitions1.put(tidp0, new FetchResponseData.PartitionData().setPartitionIndex(tp0.partition()).setHighWatermark(2).setLastStableOffset(2).setLogStartOffset(0).setRecords(this.records));
    partitions1.put(tidp1, new FetchResponseData.PartitionData().setPartitionIndex(tp1.partition()).setHighWatermark(100).setLogStartOffset(0).setRecords(emptyRecords));
    FetchResponse resp1 = FetchResponse.of(Errors.NONE, 0, 123, partitions1);
    client.prepareResponse(resp1);
    assertEquals(1, fetcher.sendFetches());
    assertFalse(fetcher.hasCompletedFetches());
    consumerClient.poll(time.timer(0));
    assertTrue(fetcher.hasCompletedFetches());
    Map<TopicPartition, List<ConsumerRecord<byte[], byte[]>>> fetchedRecords = fetchedRecords();
    assertFalse(fetchedRecords.containsKey(tp1));
    records = fetchedRecords.get(tp0);
    assertEquals(2, records.size());
    assertEquals(3L, subscriptions.position(tp0).offset);
    assertEquals(1L, subscriptions.position(tp1).offset);
    assertEquals(1, records.get(0).offset());
    assertEquals(2, records.get(1).offset());
    // There is still a buffered record.
    assertEquals(0, fetcher.sendFetches());
    fetchedRecords = fetchedRecords();
    assertFalse(fetchedRecords.containsKey(tp1));
    records = fetchedRecords.get(tp0);
    assertEquals(1, records.size());
    assertEquals(3, records.get(0).offset());
    assertEquals(4L, subscriptions.position(tp0).offset);
    // The second response contains no new records.
    LinkedHashMap<TopicIdPartition, FetchResponseData.PartitionData> partitions2 = new LinkedHashMap<>();
    FetchResponse resp2 = FetchResponse.of(Errors.NONE, 0, 123, partitions2);
    client.prepareResponse(resp2);
    assertEquals(1, fetcher.sendFetches());
    consumerClient.poll(time.timer(0));
    fetchedRecords = fetchedRecords();
    assertTrue(fetchedRecords.isEmpty());
    assertEquals(4L, subscriptions.position(tp0).offset);
    assertEquals(1L, subscriptions.position(tp1).offset);
    // The third response contains some new records for tp0.
    LinkedHashMap<TopicIdPartition, FetchResponseData.PartitionData> partitions3 = new LinkedHashMap<>();
    partitions3.put(tidp0, new FetchResponseData.PartitionData().setPartitionIndex(tp0.partition()).setHighWatermark(100).setLastStableOffset(4).setLogStartOffset(0).setRecords(this.nextRecords));
    FetchResponse resp3 = FetchResponse.of(Errors.NONE, 0, 123, partitions3);
    client.prepareResponse(resp3);
    assertEquals(1, fetcher.sendFetches());
    consumerClient.poll(time.timer(0));
    fetchedRecords = fetchedRecords();
    assertFalse(fetchedRecords.containsKey(tp1));
    records = fetchedRecords.get(tp0);
    assertEquals(2, records.size());
    assertEquals(6L, subscriptions.position(tp0).offset);
    assertEquals(1L, subscriptions.position(tp1).offset);
    assertEquals(4, records.get(0).offset());
    assertEquals(5, records.get(1).offset());
}
Also used : TopicIdPartition(org.apache.kafka.common.TopicIdPartition) FetchResponse(org.apache.kafka.common.requests.FetchResponse) ConsumerRecord(org.apache.kafka.clients.consumer.ConsumerRecord) LinkedHashMap(java.util.LinkedHashMap) FetchResponseData(org.apache.kafka.common.message.FetchResponseData) PartitionData(org.apache.kafka.common.requests.FetchRequest.PartitionData) TopicPartition(org.apache.kafka.common.TopicPartition) Collections.singletonList(java.util.Collections.singletonList) Arrays.asList(java.util.Arrays.asList) ArrayList(java.util.ArrayList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) Test(org.junit.jupiter.api.Test)

Example 24 with Arrays.asList

use of java.util.Arrays.asList in project ignite by apache.

the class MetricCommand method execute.

/**
 * {@inheritDoc}
 */
@Override
public Object execute(GridClientConfiguration clientCfg, Logger log) throws Exception {
    try {
        Map<String, ?> res;
        try (GridClient client = Command.startClient(clientCfg)) {
            res = executeTaskByNameOnNode(client, VisorMetricTask.class.getName(), taskArg, nodeId, clientCfg);
        }
        if (res != null) {
            List<List<?>> data = res.entrySet().stream().map(entry -> Arrays.asList(entry.getKey(), entry.getValue())).collect(Collectors.toList());
            printTable(asList("metric", "value"), asList(STRING, STRING), data, log);
        } else
            log.info("No metric with specified name was found [name=" + taskArg.name() + "]");
        return res;
    } catch (Throwable e) {
        log.severe("Failed to perform operation.");
        log.severe(CommandLogger.errorMessage(e));
        throw e;
    }
}
Also used : CommandLogger.optional(org.apache.ignite.internal.commandline.CommandLogger.optional) Arrays(java.util.Arrays) GridClient(org.apache.ignite.internal.client.GridClient) TaskExecutor.executeTaskByNameOnNode(org.apache.ignite.internal.commandline.TaskExecutor.executeTaskByNameOnNode) SystemViewCommand.printTable(org.apache.ignite.internal.commandline.systemview.SystemViewCommand.printTable) GridClientConfiguration(org.apache.ignite.internal.client.GridClientConfiguration) STRING(org.apache.ignite.internal.visor.systemview.VisorSystemViewTask.SimpleType.STRING) CommandLogger(org.apache.ignite.internal.commandline.CommandLogger) VisorMetricTask(org.apache.ignite.internal.visor.metric.VisorMetricTask) HashMap(java.util.HashMap) CommandArgIterator(org.apache.ignite.internal.commandline.CommandArgIterator) UUID(java.util.UUID) Logger(java.util.logging.Logger) VisorMetricTaskArg(org.apache.ignite.internal.visor.metric.VisorMetricTaskArg) Collectors(java.util.stream.Collectors) CommandArgUtils(org.apache.ignite.internal.commandline.argument.CommandArgUtils) List(java.util.List) Command(org.apache.ignite.internal.commandline.Command) Arrays.asList(java.util.Arrays.asList) Map(java.util.Map) AbstractCommand(org.apache.ignite.internal.commandline.AbstractCommand) METRIC(org.apache.ignite.internal.commandline.CommandList.METRIC) NODE_ID(org.apache.ignite.internal.commandline.metric.MetricCommandArg.NODE_ID) List(java.util.List) Arrays.asList(java.util.Arrays.asList) GridClient(org.apache.ignite.internal.client.GridClient)

Example 25 with Arrays.asList

use of java.util.Arrays.asList in project drools by kiegroup.

the class AccumulateMvelDialectTest method testAccFunctionOpaqueJoins.

// This is unsupported as the declared type Data is loosely typed
private void testAccFunctionOpaqueJoins(final PropertySpecificOption propertySpecificOption) {
    final String drl = "package org.test; " + "import java.util.*; " + "global List list; " + "global List list2; " + "declare Tick " + "  tick : int " + "end " + "declare Data " + "  values : List " + "  bias : int = 0 " + "end " + "rule Init " + "when " + "then " + "  insert( new Data( Arrays.asList( 1, 2, 3 ), 1 ) ); " + "  insert( new Data( Arrays.asList( 4, 5, 6 ), 2 ) ); " + "  insert( new Tick( 0 ) );" + "end " + "rule Update " + "  no-loop " + "when " + "  $i : Integer() " + "  $t : Tick() " + "then " + "  System.out.println( 'Set tick to ' + $i ); " + "  modify( $t ) { " + "      setTick( $i ); " + "  } " + "end " + "rule M " + "  dialect 'mvel' " + "when " + "    Tick( $index : tick ) " + "    accumulate ( $data : Data( $bias : bias )," + "                 $tot : sum( ((Integer) $data.values[ $index ]) + $bias ) ) " + "then " + "    System.out.println( $tot + ' for J ' + $index ); " + "    list.add( $tot.intValue() ); " + "end " + "rule J " + "when " + "    Tick( $index : tick ) " + "    accumulate ( $data : Data( $bias : bias )," + "                 $tot : sum( ((Integer)$data.getValues().get( $index )) + $bias ) ) " + "then " + "    System.out.println( $tot + ' for M ' + $index ); " + "    list2.add( $tot.intValue() ); " + "end ";
    final ReleaseId releaseId1 = KieServices.get().newReleaseId("org.kie", "accumulate-test", "1");
    final Map<String, String> kieModuleConfigurationProperties = new HashMap<>();
    kieModuleConfigurationProperties.put(PropertySpecificOption.PROPERTY_NAME, propertySpecificOption.toString());
    final KieModule kieModule = KieUtil.getKieModuleFromDrls(releaseId1, kieBaseTestConfiguration, KieSessionTestConfiguration.STATEFUL_REALTIME, kieModuleConfigurationProperties, drl);
    final KieContainer kieContainer = KieServices.get().newKieContainer(kieModule.getReleaseId());
    final KieBase kbase = kieContainer.getKieBase();
    final KieSession ks = kbase.newKieSession();
    try {
        final List list = new ArrayList();
        ks.setGlobal("list", list);
        final List list2 = new ArrayList();
        ks.setGlobal("list2", list2);
        // init data
        ks.fireAllRules();
        assertEquals(Collections.singletonList(8), list);
        assertEquals(Collections.singletonList(8), list2);
        ks.insert(1);
        ks.fireAllRules();
        assertEquals(asList(8, 10), list);
        assertEquals(asList(8, 10), list2);
        ks.insert(2);
        ks.fireAllRules();
        assertEquals(asList(8, 10, 12), list);
        assertEquals(asList(8, 10, 12), list2);
    } finally {
        ks.dispose();
    }
}
Also used : HashMap(java.util.HashMap) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) Arrays.asList(java.util.Arrays.asList) List(java.util.List) ReleaseId(org.kie.api.builder.ReleaseId) KieModule(org.kie.api.builder.KieModule) KieContainer(org.kie.api.runtime.KieContainer)

Aggregations

Arrays.asList (java.util.Arrays.asList)73 List (java.util.List)66 ArrayList (java.util.ArrayList)49 Test (org.junit.Test)37 Arrays (java.util.Arrays)22 Collections.singletonList (java.util.Collections.singletonList)20 Map (java.util.Map)18 Collectors (java.util.stream.Collectors)18 Test (org.junit.jupiter.api.Test)15 HashMap (java.util.HashMap)14 Before (org.junit.Before)13 Collection (java.util.Collection)12 Stream (java.util.stream.Stream)10 Method (java.lang.reflect.Method)9 Optional (java.util.Optional)9 Collections (java.util.Collections)8 Collections.emptyList (java.util.Collections.emptyList)8 TopicPartition (org.apache.kafka.common.TopicPartition)8 Employee (com.artezio.arttime.datamodel.Employee)6 HourType (com.artezio.arttime.datamodel.HourType)6