org.apache.kafka.clients.producer.internals.DefaultPartitioner Java Examples
The following examples show how to use
org.apache.kafka.clients.producer.internals.DefaultPartitioner.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: HdfsSinkConnectorConfig.java From streamx with Apache License 2.0 | 6 votes |
@Override public boolean visible(String name, Map<String, Object> connectorConfigs) { String partitionerName = (String) connectorConfigs.get(PARTITIONER_CLASS_CONFIG); try { @SuppressWarnings("unchecked") Class<? extends Partitioner> partitioner = (Class<? extends Partitioner>) Class.forName(partitionerName); if (classNameEquals(partitionerName, DefaultPartitioner.class)) { return false; } else if (FieldPartitioner.class.isAssignableFrom(partitioner)) { // subclass of FieldPartitioner return name.equals(PARTITION_FIELD_NAME_CONFIG); } else if (TimeBasedPartitioner.class.isAssignableFrom(partitioner)) { // subclass of TimeBasedPartitioner if (classNameEquals(partitionerName, DailyPartitioner.class) || classNameEquals(partitionerName, HourlyPartitioner.class)) { return name.equals(LOCALE_CONFIG) || name.equals(TIMEZONE_CONFIG); } else { return name.equals(PARTITION_DURATION_MS_CONFIG) || name.equals(PATH_FORMAT_CONFIG) || name.equals(LOCALE_CONFIG) || name.equals(TIMEZONE_CONFIG); } } else { throw new ConfigException("Not a valid partitioner class: " + partitionerName); } } catch (ClassNotFoundException e) { throw new ConfigException("Partitioner class not found: " + partitionerName); } }
Example #2
Source File: PulsarKafkaProducerTest.java From pulsar with Apache License 2.0 | 5 votes |
@Test public void testPulsarKafkaProducer() { ClientBuilder mockClientBuilder = mock(ClientBuilder.class); ProducerBuilder mockProducerBuilder = mock(ProducerBuilder.class); doAnswer(invocation -> { Assert.assertEquals((int)invocation.getArguments()[0], 1000000, "Send time out is suppose to be 1000."); return mockProducerBuilder; }).when(mockProducerBuilder).sendTimeout(anyInt(), any(TimeUnit.class)); doReturn(mockClientBuilder).when(mockClientBuilder).serviceUrl(anyString()); doAnswer(invocation -> { Assert.assertEquals((int)invocation.getArguments()[0], 1000, "Keep alive interval is suppose to be 1000."); return mockClientBuilder; }).when(mockClientBuilder).keepAliveInterval(anyInt(), any(TimeUnit.class)); PowerMockito.mockStatic(PulsarClientKafkaConfig.class); PowerMockito.mockStatic(PulsarProducerKafkaConfig.class); when(PulsarClientKafkaConfig.getClientBuilder(any(Properties.class))).thenReturn(mockClientBuilder); when(PulsarProducerKafkaConfig.getProducerBuilder(any(), any())).thenReturn(mockProducerBuilder); Properties properties = new Properties(); properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, DefaultPartitioner.class); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, Arrays.asList("pulsar://localhost:6650")); properties.put(ProducerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, "1000000"); properties.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, "1000000"); properties.put(PulsarProducerKafkaConfig.BLOCK_IF_PRODUCER_QUEUE_FULL, Boolean.FALSE.toString()); new PulsarKafkaProducer<>(properties); verify(mockClientBuilder, times(1)).keepAliveInterval(1000, TimeUnit.SECONDS); verify(mockProducerBuilder, times(1)).sendTimeout(1000000, TimeUnit.MILLISECONDS); verify(mockProducerBuilder, times(1)).blockIfQueueFull(false); }
Example #3
Source File: PulsarKafkaProducerTest.java From pulsar with Apache License 2.0 | 5 votes |
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Invalid value 2147483648000 for 'connections.max.idle.ms'. Please use a value smaller than 2147483647000 milliseconds.") public void testPulsarKafkaProducerKeepAliveIntervalIllegalArgumentException() { Properties properties = new Properties(); properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, DefaultPartitioner.class); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, Arrays.asList("pulsar://localhost:6650")); properties.put(ProducerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, Long.toString((Integer.MAX_VALUE + 1L) * 1000)); new PulsarKafkaProducer<>(properties); }
Example #4
Source File: PulsarKafkaProducerTest.java From pulsar with Apache License 2.0 | 5 votes |
@Test public void testPulsarKafkaProducer() { ClientBuilder mockClientBuilder = mock(ClientBuilder.class); ProducerBuilder mockProducerBuilder = mock(ProducerBuilder.class); doAnswer(invocation -> { Assert.assertEquals((int)invocation.getArguments()[0], 1000000, "Send time out is suppose to be 1000."); return mockProducerBuilder; }).when(mockProducerBuilder).sendTimeout(anyInt(), any(TimeUnit.class)); doReturn(mockClientBuilder).when(mockClientBuilder).serviceUrl(anyString()); doAnswer(invocation -> { Assert.assertEquals((int)invocation.getArguments()[0], 1000, "Keep alive interval is suppose to be 1000."); return mockClientBuilder; }).when(mockClientBuilder).keepAliveInterval(anyInt(), any(TimeUnit.class)); PowerMockito.mockStatic(PulsarClientKafkaConfig.class); PowerMockito.mockStatic(PulsarProducerKafkaConfig.class); when(PulsarClientKafkaConfig.getClientBuilder(any(Properties.class))).thenReturn(mockClientBuilder); when(PulsarProducerKafkaConfig.getProducerBuilder(any(), any())).thenReturn(mockProducerBuilder); Properties properties = new Properties(); properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, DefaultPartitioner.class); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, Arrays.asList("pulsar://localhost:6650")); properties.put(ProducerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, "1000000"); properties.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, "1000000"); new PulsarKafkaProducer<>(properties); verify(mockClientBuilder, times(1)).keepAliveInterval(1000, TimeUnit.SECONDS); verify(mockProducerBuilder, times(1)).sendTimeout(1000000, TimeUnit.MILLISECONDS); }
Example #5
Source File: PulsarKafkaProducerTest.java From pulsar with Apache License 2.0 | 5 votes |
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Invalid value 2147483648000 for 'connections.max.idle.ms'. Please use a value smaller than 2147483647000 milliseconds.") public void testPulsarKafkaProducerKeepAliveIntervalIllegalArgumentException() { Properties properties = new Properties(); properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, DefaultPartitioner.class); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, Arrays.asList("pulsar://localhost:6650")); properties.put(ProducerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, Long.toString((Integer.MAX_VALUE + 1L) * 1000)); new PulsarKafkaProducer<>(properties); }
Example #6
Source File: KafkaProcessor.java From quarkus with Apache License 2.0 | 4 votes |
@BuildStep public void build(CombinedIndexBuildItem indexBuildItem, BuildProducer<ReflectiveClassBuildItem> reflectiveClass, Capabilities capabilities) { final Set<DotName> toRegister = new HashSet<>(); collectImplementors(toRegister, indexBuildItem, Serializer.class); collectImplementors(toRegister, indexBuildItem, Deserializer.class); collectImplementors(toRegister, indexBuildItem, Partitioner.class); // PartitionAssignor is now deprecated, replaced by ConsumerPartitionAssignor collectImplementors(toRegister, indexBuildItem, PartitionAssignor.class); collectImplementors(toRegister, indexBuildItem, ConsumerPartitionAssignor.class); for (Class<?> i : BUILT_INS) { reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, i.getName())); collectSubclasses(toRegister, indexBuildItem, i); } if (capabilities.isCapabilityPresent(Capabilities.JSONB)) { reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, JsonbSerializer.class, JsonbDeserializer.class)); collectSubclasses(toRegister, indexBuildItem, JsonbSerializer.class); collectSubclasses(toRegister, indexBuildItem, JsonbDeserializer.class); } if (capabilities.isCapabilityPresent(Capabilities.JACKSON)) { reflectiveClass.produce( new ReflectiveClassBuildItem(false, false, ObjectMapperSerializer.class, ObjectMapperDeserializer.class)); collectSubclasses(toRegister, indexBuildItem, ObjectMapperSerializer.class); collectSubclasses(toRegister, indexBuildItem, ObjectMapperDeserializer.class); } for (DotName s : toRegister) { reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, s.toString())); } // built in partitioner and partition assignors reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, DefaultPartitioner.class.getName())); reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, RangeAssignor.class.getName())); reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, RoundRobinAssignor.class.getName())); reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, StickyAssignor.class.getName())); // classes needed to perform reflection on DirectByteBuffer - only really needed for Java 8 reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, "java.nio.DirectByteBuffer")); reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, "sun.misc.Cleaner")); }
Example #7
Source File: PulsarKafkaProducerTest.java From pulsar with Apache License 2.0 | 4 votes |
@Test public void testPulsarKafkaInterceptor() throws PulsarClientException { // Arrange PulsarClient mockClient = mock(PulsarClient.class); ProducerBuilder mockProducerBuilder = mock(ProducerBuilder.class); org.apache.pulsar.client.api.Producer mockProducer = mock(org.apache.pulsar.client.api.Producer.class); ClientBuilder mockClientBuilder = mock(ClientBuilder.class); CompletableFuture mockPartitionFuture = new CompletableFuture(); CompletableFuture mockSendAsyncFuture = new CompletableFuture(); TypedMessageBuilder mockTypedMessageBuilder = mock(TypedMessageBuilderImpl.class); mockPartitionFuture.complete(new ArrayList<>()); mockSendAsyncFuture.complete(new MessageIdImpl(1, 1, 1)); doReturn(mockClientBuilder).when(mockClientBuilder).serviceUrl(anyString()); doReturn(mockClientBuilder).when(mockClientBuilder).keepAliveInterval(anyInt(), any(TimeUnit.class)); doReturn(mockClient).when(mockClientBuilder).build(); doReturn(mockPartitionFuture).when(mockClient).getPartitionsForTopic(anyString()); doReturn(mockProducerBuilder).when(mockProducerBuilder).topic(anyString()); doReturn(mockProducerBuilder).when(mockProducerBuilder).clone(); doReturn(mockProducerBuilder).when(mockProducerBuilder).intercept( (org.apache.pulsar.client.api.ProducerInterceptor) any()); doReturn(mockProducer).when(mockProducerBuilder).create(); doReturn(mockTypedMessageBuilder).when(mockProducer).newMessage(); doReturn(mockSendAsyncFuture).when(mockTypedMessageBuilder).sendAsync(); PowerMockito.mockStatic(PulsarClientKafkaConfig.class); PowerMockito.mockStatic(PulsarProducerKafkaConfig.class); when(PulsarClientKafkaConfig.getClientBuilder(any(Properties.class))).thenReturn(mockClientBuilder); when(PulsarProducerKafkaConfig.getProducerBuilder(any(PulsarClient.class), any(Properties.class))).thenReturn(mockProducerBuilder); Properties properties = new Properties(); List interceptors = new ArrayList(); interceptors.add("org.apache.kafka.clients.producer.PulsarKafkaProducerTest$PulsarKafkaProducerInterceptor"); properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, DefaultPartitioner.class); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, Arrays.asList("pulsar://localhost:6650")); properties.put(ProducerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, "1000000"); properties.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, "1000000"); properties.put(ProducerConfig.INTERCEPTOR_CLASSES_CONFIG, interceptors); // Act PulsarKafkaProducer<String, String> pulsarKafkaProducer = new PulsarKafkaProducer<>(properties); pulsarKafkaProducer.send(new ProducerRecord<>("topic", 1,"key", "value")); // Verify verify(mockProducerBuilder, times(1)).intercept( (org.apache.pulsar.client.api.ProducerInterceptor)any()); }
Example #8
Source File: PulsarKafkaProducerTest.java From pulsar with Apache License 2.0 | 4 votes |
@Test public void testPulsarKafkaSendAvro() throws PulsarClientException { // Arrange PulsarClient mockClient = mock(PulsarClient.class); ProducerBuilder mockProducerBuilder = mock(ProducerBuilder.class); org.apache.pulsar.client.api.Producer mockProducer = mock(org.apache.pulsar.client.api.Producer.class); ClientBuilder mockClientBuilder = mock(ClientBuilder.class); CompletableFuture mockPartitionFuture = new CompletableFuture(); CompletableFuture mockSendAsyncFuture = new CompletableFuture(); TypedMessageBuilder mockTypedMessageBuilder = mock(TypedMessageBuilderImpl.class); mockPartitionFuture.complete(new ArrayList<>()); mockSendAsyncFuture.complete(new MessageIdImpl(1, 1, 1)); doReturn(mockClientBuilder).when(mockClientBuilder).serviceUrl(anyString()); doReturn(mockClientBuilder).when(mockClientBuilder).keepAliveInterval(anyInt(), any(TimeUnit.class)); doReturn(mockClient).when(mockClientBuilder).build(); doReturn(mockPartitionFuture).when(mockClient).getPartitionsForTopic(anyString()); doReturn(mockProducerBuilder).when(mockProducerBuilder).topic(anyString()); doReturn(mockProducerBuilder).when(mockProducerBuilder).clone(); doReturn(mockProducerBuilder).when(mockProducerBuilder).intercept( (org.apache.pulsar.client.api.ProducerInterceptor) any()); doReturn(mockProducer).when(mockProducerBuilder).create(); doReturn(mockTypedMessageBuilder).when(mockProducer).newMessage(); doReturn(mockSendAsyncFuture).when(mockTypedMessageBuilder).sendAsync(); PowerMockito.mockStatic(PulsarClientKafkaConfig.class); PowerMockito.mockStatic(PulsarProducerKafkaConfig.class); when(PulsarClientKafkaConfig.getClientBuilder(any(Properties.class))).thenReturn(mockClientBuilder); when(PulsarProducerKafkaConfig.getProducerBuilder(any(PulsarClient.class), any(Properties.class))).thenReturn(mockProducerBuilder); Properties properties = new Properties(); List interceptors = new ArrayList(); interceptors.add("org.apache.kafka.clients.producer.PulsarKafkaProducerTest$PulsarKafkaProducerInterceptor"); properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, DefaultPartitioner.class); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, Arrays.asList("pulsar://localhost:6650")); properties.put(ProducerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, "1000000"); properties.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, "1000000"); properties.put(ProducerConfig.INTERCEPTOR_CLASSES_CONFIG, interceptors); AvroSchema<Bar> barSchema = AvroSchema.of(SchemaDefinition.<Bar>builder().withPojo(Bar.class).build()); AvroSchema<Foo> fooSchema = AvroSchema.of(SchemaDefinition.<Foo>builder().withPojo(Foo.class).build()); // Act PulsarKafkaProducer<Foo, Bar> pulsarKafkaProducer = new PulsarKafkaProducer<>(properties, fooSchema, barSchema); Bar bar = new Bar(); bar.setField1(true); Foo foo = new Foo(); foo.setField1("field1"); foo.setField2("field2"); foo.setField3(3); pulsarKafkaProducer.send(new ProducerRecord<>("topic", 1,foo, bar)); // Verify verify(mockTypedMessageBuilder, times(1)).sendAsync(); verify(mockProducerBuilder, times(1)).intercept( (org.apache.pulsar.client.api.ProducerInterceptor) any()); }
Example #9
Source File: PulsarKafkaProducerTest.java From pulsar with Apache License 2.0 | 4 votes |
@Test public void testPulsarKafkaSendAvro() throws PulsarClientException { // Arrange PulsarClient mockClient = mock(PulsarClient.class); ProducerBuilder mockProducerBuilder = mock(ProducerBuilder.class); org.apache.pulsar.client.api.Producer mockProducer = mock(org.apache.pulsar.client.api.Producer.class); ClientBuilder mockClientBuilder = mock(ClientBuilder.class); CompletableFuture mockPartitionFuture = new CompletableFuture(); CompletableFuture mockSendAsyncFuture = new CompletableFuture(); TypedMessageBuilder mockTypedMessageBuilder = mock(TypedMessageBuilderImpl.class); mockPartitionFuture.complete(new ArrayList<>()); mockSendAsyncFuture.complete(new MessageIdImpl(1, 1, 1)); doReturn(mockClientBuilder).when(mockClientBuilder).serviceUrl(anyString()); doReturn(mockClientBuilder).when(mockClientBuilder).keepAliveInterval(anyInt(), any(TimeUnit.class)); doReturn(mockClient).when(mockClientBuilder).build(); doReturn(mockPartitionFuture).when(mockClient).getPartitionsForTopic(anyString()); doReturn(mockProducerBuilder).when(mockProducerBuilder).topic(anyString()); doReturn(mockProducerBuilder).when(mockProducerBuilder).clone(); doReturn(mockProducer).when(mockProducerBuilder).create(); doReturn(mockTypedMessageBuilder).when(mockProducer).newMessage(); doReturn(mockSendAsyncFuture).when(mockTypedMessageBuilder).sendAsync(); PowerMockito.mockStatic(PulsarClientKafkaConfig.class); PowerMockito.mockStatic(PulsarProducerKafkaConfig.class); when(PulsarClientKafkaConfig.getClientBuilder(any(Properties.class))).thenReturn(mockClientBuilder); when(PulsarProducerKafkaConfig.getProducerBuilder(any(PulsarClient.class), any(Properties.class))).thenReturn(mockProducerBuilder); Properties properties = new Properties(); properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, DefaultPartitioner.class); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, Arrays.asList("pulsar://localhost:6650")); properties.put(ProducerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, "1000000"); properties.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, "1000000"); AvroSchema<Bar> barSchema = AvroSchema.of(SchemaDefinition.<Bar>builder().withPojo(Bar.class).build()); AvroSchema<Foo> fooSchema = AvroSchema.of(SchemaDefinition.<Foo>builder().withPojo(Foo.class).build()); // Act PulsarKafkaProducer<Foo, Bar> pulsarKafkaProducer = new PulsarKafkaProducer<>(properties, fooSchema, barSchema); Bar bar = new Bar(); bar.setField1(true); Foo foo = new Foo(); foo.setField1("field1"); foo.setField2("field2"); foo.setField3(3); pulsarKafkaProducer.send(new ProducerRecord<>("topic", 1, foo, bar)); // Verify verify(mockTypedMessageBuilder).sendAsync(); }