Skip to content

Commit 5cfb17d

Browse files
authored
MINOR: Move ShareAcquireMode to consumer.internal package (#20973) (#21015)
This PR moves `ShareAcquireMode` to the `consumer.internal` package and addresses comments from #20246 (review) Reviewers: Apoorv Mittal <apoorvmittal10@gmail.com>, Andrew Schofield <aschofield@confluent.io>, Chirag Wadhwa <cwadhwa@confluent.io>, Chia-Ping Tsai <chia7712@gmail.com>
1 parent c529951 commit 5cfb17d

File tree

18 files changed

+200
-36
lines changed

18 files changed

+200
-36
lines changed

clients/src/main/java/org/apache/kafka/clients/consumer/ConsumerConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.kafka.clients.MetadataRecoveryStrategy;
2222
import org.apache.kafka.clients.consumer.internals.AutoOffsetResetStrategy;
2323
import org.apache.kafka.clients.consumer.internals.ShareAcknowledgementMode;
24+
import org.apache.kafka.clients.consumer.internals.ShareAcquireMode;
2425
import org.apache.kafka.common.IsolationLevel;
2526
import org.apache.kafka.common.config.AbstractConfig;
2627
import org.apache.kafka.common.config.ConfigDef;

clients/src/main/java/org/apache/kafka/clients/consumer/ShareAcquireMode.java renamed to clients/src/main/java/org/apache/kafka/clients/consumer/internals/ShareAcquireMode.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.kafka.clients.consumer;
17+
package org.apache.kafka.clients.consumer.internals;
1818

1919
import org.apache.kafka.common.config.ConfigDef;
2020
import org.apache.kafka.common.config.ConfigException;
@@ -29,7 +29,7 @@ public enum ShareAcquireMode {
2929

3030
public final String name;
3131

32-
public final byte id;
32+
final byte id;
3333

3434
ShareAcquireMode(final String name, final byte id) {
3535
this.name = name;
@@ -40,6 +40,9 @@ public enum ShareAcquireMode {
4040
* Case-insensitive acquire mode lookup by string name.
4141
*/
4242
public static ShareAcquireMode of(final String name) {
43+
if (name == null) {
44+
throw new IllegalArgumentException("ShareAcquireMode is null");
45+
}
4346
try {
4447
return ShareAcquireMode.valueOf(name.toUpperCase(Locale.ROOT));
4548
} catch (IllegalArgumentException e) {
@@ -65,7 +68,7 @@ public static ShareAcquireMode forId(byte id) {
6568

6669
@Override
6770
public String toString() {
68-
return "ShareAcquireMode(" + name + " (" + id + "))";
71+
return name;
6972
}
7073

7174
public static class Validator implements ConfigDef.Validator {

clients/src/main/java/org/apache/kafka/clients/consumer/internals/ShareConsumeRequestManager.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import org.apache.kafka.clients.ClientResponse;
2020
import org.apache.kafka.clients.Metadata;
21-
import org.apache.kafka.clients.consumer.ShareAcquireMode;
2221
import org.apache.kafka.clients.consumer.internals.NetworkClientDelegate.PollResult;
2322
import org.apache.kafka.clients.consumer.internals.NetworkClientDelegate.UnsentRequest;
2423
import org.apache.kafka.clients.consumer.internals.events.ShareAcknowledgementEvent;

clients/src/main/java/org/apache/kafka/clients/consumer/internals/ShareFetchConfig.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.apache.kafka.clients.consumer.internals;
1818

1919
import org.apache.kafka.clients.consumer.ConsumerConfig;
20-
import org.apache.kafka.clients.consumer.ShareAcquireMode;
2120
import org.apache.kafka.common.IsolationLevel;
2221

2322
import static org.apache.kafka.clients.consumer.internals.ConsumerUtils.configuredIsolationLevel;

clients/src/main/java/org/apache/kafka/common/requests/ShareFetchRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717
package org.apache.kafka.common.requests;
1818

19-
import org.apache.kafka.clients.consumer.ShareAcquireMode;
19+
import org.apache.kafka.clients.consumer.internals.ShareAcquireMode;
2020
import org.apache.kafka.common.TopicIdPartition;
2121
import org.apache.kafka.common.TopicPartition;
2222
import org.apache.kafka.common.Uuid;
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one or more
3+
* contributor license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright ownership.
5+
* The ASF licenses this file to You under the Apache License, Version 2.0
6+
* (the "License"); you may not use this file except in compliance with
7+
* the License. You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package org.apache.kafka.clients.consumer.internals;
18+
19+
import org.apache.kafka.common.config.ConfigException;
20+
21+
import org.junit.jupiter.api.Test;
22+
23+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
24+
import static org.junit.jupiter.api.Assertions.assertEquals;
25+
import static org.junit.jupiter.api.Assertions.assertThrows;
26+
27+
public class ShareAcquireModeTest {
28+
29+
@Test
30+
public void testFromString() {
31+
assertEquals(ShareAcquireMode.BATCH_OPTIMIZED, ShareAcquireMode.of("batch_optimized"));
32+
assertEquals(ShareAcquireMode.BATCH_OPTIMIZED, ShareAcquireMode.of("BATCH_OPTIMIZED"));
33+
assertEquals(ShareAcquireMode.RECORD_LIMIT, ShareAcquireMode.of("record_limit"));
34+
assertEquals(ShareAcquireMode.RECORD_LIMIT, ShareAcquireMode.of("RECORD_LIMIT"));
35+
assertThrows(IllegalArgumentException.class, () -> ShareAcquireMode.of("invalid_mode"));
36+
assertThrows(IllegalArgumentException.class, () -> ShareAcquireMode.of(""));
37+
assertThrows(IllegalArgumentException.class, () -> ShareAcquireMode.of(null));
38+
}
39+
40+
@Test
41+
public void testValidator() {
42+
ShareAcquireMode.Validator validator = new ShareAcquireMode.Validator();
43+
assertDoesNotThrow(() -> validator.ensureValid("test", "batch_optimized"));
44+
assertDoesNotThrow(() -> validator.ensureValid("test", "BATCH_OPTIMIZED"));
45+
assertDoesNotThrow(() -> validator.ensureValid("test", "record_limit"));
46+
assertDoesNotThrow(() -> validator.ensureValid("test", "RECORD_LIMIT"));
47+
assertThrows(ConfigException.class, () -> validator.ensureValid("test", "invalid_mode"));
48+
assertThrows(ConfigException.class, () -> validator.ensureValid("test", ""));
49+
assertThrows(ConfigException.class, () -> validator.ensureValid("test", null));
50+
}
51+
52+
@Test
53+
public void testValidatorToString() {
54+
ShareAcquireMode.Validator validator = new ShareAcquireMode.Validator();
55+
assertEquals("[batch_optimized, record_limit]", validator.toString());
56+
}
57+
}

clients/src/test/java/org/apache/kafka/clients/consumer/internals/ShareConsumeRequestManagerTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.apache.kafka.clients.consumer.AcknowledgeType;
2525
import org.apache.kafka.clients.consumer.ConsumerConfig;
2626
import org.apache.kafka.clients.consumer.ConsumerRecord;
27-
import org.apache.kafka.clients.consumer.ShareAcquireMode;
2827
import org.apache.kafka.clients.consumer.internals.events.BackgroundEventHandler;
2928
import org.apache.kafka.clients.consumer.internals.events.ShareAcknowledgementEvent;
3029
import org.apache.kafka.clients.consumer.internals.events.ShareAcknowledgementEventHandler;

clients/src/test/java/org/apache/kafka/clients/consumer/internals/ShareSessionHandlerTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import org.apache.kafka.clients.consumer.AcknowledgeType;
2020
import org.apache.kafka.clients.consumer.ConsumerConfig;
21-
import org.apache.kafka.clients.consumer.ShareAcquireMode;
2221
import org.apache.kafka.common.IsolationLevel;
2322
import org.apache.kafka.common.TopicIdPartition;
2423
import org.apache.kafka.common.TopicPartition;

core/src/main/java/kafka/server/share/SharePartition.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import kafka.server.share.SharePartitionManager.SharePartitionListener;
2121

2222
import org.apache.kafka.clients.consumer.AcknowledgeType;
23-
import org.apache.kafka.clients.consumer.ShareAcquireMode;
23+
import org.apache.kafka.clients.consumer.internals.ShareAcquireMode;
2424
import org.apache.kafka.common.KafkaException;
2525
import org.apache.kafka.common.TopicIdPartition;
2626
import org.apache.kafka.common.Uuid;
@@ -1836,13 +1836,13 @@ private List<AcquiredRecords> createBatches(
18361836
sharePartitionMetrics);
18371837
int delayMs = recordLockDurationMsOrDefault(groupConfigManager, groupId, defaultRecordLockDurationMs);
18381838
long lastOffset = acquiredRecords.firstOffset() + maxFetchRecords - 1;
1839-
acquiredRecords.setLastOffset(lastOffset);
18401839
inFlightBatch.maybeInitializeOffsetStateUpdate(lastOffset, delayMs);
18411840
updateFindNextFetchOffset(true);
18421841

18431842
cachedState.put(acquiredRecords.firstOffset(), inFlightBatch);
18441843
sharePartitionMetrics.recordInFlightBatchMessageCount(
18451844
acquiredRecords.lastOffset() - acquiredRecords.firstOffset() + 1);
1845+
acquiredRecords.setLastOffset(lastOffset);
18461846
return List.of(acquiredRecords);
18471847
}
18481848
}

core/src/test/java/kafka/server/share/DelayedShareFetchTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import kafka.server.ReplicaManager;
2222
import kafka.server.ReplicaQuota;
2323

24-
import org.apache.kafka.clients.consumer.ShareAcquireMode;
24+
import org.apache.kafka.clients.consumer.internals.ShareAcquireMode;
2525
import org.apache.kafka.common.TopicIdPartition;
2626
import org.apache.kafka.common.TopicPartition;
2727
import org.apache.kafka.common.Uuid;

0 commit comments

Comments
 (0)