From 92babf8fb8f996c8f5209424ec4af5e35caef11a Mon Sep 17 00:00:00 2001 From: Jovan Ruzic Date: Mon, 21 Feb 2022 15:57:45 +0100 Subject: [PATCH] Feat(MPM-533): rdkafka6.0-support (#67) --- .circleci/config.yml | 4 ++-- Makefile | 2 +- composer.json | 7 ++++++- docker/dev/php/Dockerfile | 2 +- src/Callback/KafkaConsumerRebalanceCallback.php | 1 - src/Callback/KafkaErrorCallback.php | 1 - src/Conf/KafkaConfiguration.php | 1 - src/Consumer/AbstractKafkaConsumer.php | 1 - src/Consumer/KafkaConsumerBuilder.php | 1 - src/Consumer/KafkaConsumerBuilderInterface.php | 1 - src/Consumer/KafkaHighLevelConsumer.php | 1 - src/Consumer/KafkaLowLevelConsumer.php | 1 - src/Consumer/KafkaLowLevelConsumerInterface.php | 1 - src/Consumer/TopicSubscription.php | 1 - src/Consumer/TopicSubscriptionInterface.php | 1 - src/Exception/KafkaConsumerConsumeException.php | 1 - src/Exception/KafkaConsumerEndOfPartitionException.php | 1 - src/Exception/KafkaConsumerTimeoutException.php | 1 - src/Message/AbstractKafkaMessage.php | 1 - src/Message/Decoder/JsonDecoder.php | 1 - src/Message/Decoder/NullDecoder.php | 1 - src/Message/Encoder/AvroEncoder.php | 1 - src/Message/Encoder/JsonEncoder.php | 1 - src/Message/Encoder/NullEncoder.php | 1 - src/Message/KafkaAvroSchema.php | 1 - src/Message/KafkaAvroSchemaInterface.php | 1 - src/Message/KafkaConsumerMessage.php | 1 - src/Message/KafkaConsumerMessageInterface.php | 1 - src/Message/KafkaMessageInterface.php | 1 - src/Message/KafkaProducerMessage.php | 1 - src/Message/KafkaProducerMessageInterface.php | 1 - src/Producer/KafkaProducer.php | 1 - src/Producer/KafkaProducerInterface.php | 1 - 33 files changed, 10 insertions(+), 34 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cdc483b..e2540df 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,8 +1,8 @@ version: 2.1 orbs: - ci-caching: jobcloud/ci-caching@1.0.2 - ci-php: jobcloud/ci-php@0.32 + ci-caching: jobcloud/ci-caching@3.0 + ci-php: jobcloud/ci-php@2.1 workflows: test-php-kafka-lib: diff --git a/Makefile b/Makefile index 7b97d53..a8cf320 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ test: pcov-disable static-analysis: pcov-disable mkdir -p build/logs/phpstan - ${PHPSTAN} analyse --no-progress --memory-limit=64 + ${PHPSTAN} analyse --no-progress update-dependencies: composer update diff --git a/composer.json b/composer.json index d53e9bb..f43ebf5 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ ], "require": { "php": "^7.3|^8.0", - "ext-rdkafka": "^4.0|^5.0", + "ext-rdkafka": "^4.0|^5.0|^6.0", "ext-json": "*" }, "require-dev": { @@ -44,5 +44,10 @@ "branch-alias": { "dev-master": "2.0-dev" } + }, + "config": { + "allow-plugins": { + "infection/extension-installer": false + } } } diff --git a/docker/dev/php/Dockerfile b/docker/dev/php/Dockerfile index a5056eb..e0c442a 100644 --- a/docker/dev/php/Dockerfile +++ b/docker/dev/php/Dockerfile @@ -31,7 +31,7 @@ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin - # PHP: Install php extensions RUN pecl channel-update pecl.php.net && \ - pecl install rdkafka pcov && \ + pecl install rdkafka-6.0.1 pcov && \ docker-php-ext-install pcntl && \ php-ext-enable rdkafka pcntl pcov diff --git a/src/Callback/KafkaConsumerRebalanceCallback.php b/src/Callback/KafkaConsumerRebalanceCallback.php index e9cc265..4eb9aa5 100644 --- a/src/Callback/KafkaConsumerRebalanceCallback.php +++ b/src/Callback/KafkaConsumerRebalanceCallback.php @@ -15,7 +15,6 @@ final class KafkaConsumerRebalanceCallback { - /** * @param RdKafkaConsumer $consumer * @param integer $errorCode diff --git a/src/Callback/KafkaErrorCallback.php b/src/Callback/KafkaErrorCallback.php index c024e96..e1d1490 100644 --- a/src/Callback/KafkaErrorCallback.php +++ b/src/Callback/KafkaErrorCallback.php @@ -12,7 +12,6 @@ final class KafkaErrorCallback { - /** * @param mixed $kafka * @param integer $errorCode diff --git a/src/Conf/KafkaConfiguration.php b/src/Conf/KafkaConfiguration.php index 5d74d92..d1475a9 100644 --- a/src/Conf/KafkaConfiguration.php +++ b/src/Conf/KafkaConfiguration.php @@ -11,7 +11,6 @@ class KafkaConfiguration extends RdKafkaConf { - /** * @var string[] */ diff --git a/src/Consumer/AbstractKafkaConsumer.php b/src/Consumer/AbstractKafkaConsumer.php index 66ee5c7..57ebd9e 100644 --- a/src/Consumer/AbstractKafkaConsumer.php +++ b/src/Consumer/AbstractKafkaConsumer.php @@ -20,7 +20,6 @@ abstract class AbstractKafkaConsumer implements KafkaConsumerInterface { - /** * @var KafkaConfiguration */ diff --git a/src/Consumer/KafkaConsumerBuilder.php b/src/Consumer/KafkaConsumerBuilder.php index 4363205..6769f3f 100644 --- a/src/Consumer/KafkaConsumerBuilder.php +++ b/src/Consumer/KafkaConsumerBuilder.php @@ -14,7 +14,6 @@ final class KafkaConsumerBuilder implements KafkaConsumerBuilderInterface { - public const CONSUMER_TYPE_LOW_LEVEL = 'low'; public const CONSUMER_TYPE_HIGH_LEVEL = 'high'; diff --git a/src/Consumer/KafkaConsumerBuilderInterface.php b/src/Consumer/KafkaConsumerBuilderInterface.php index af7d1c8..b5badd7 100644 --- a/src/Consumer/KafkaConsumerBuilderInterface.php +++ b/src/Consumer/KafkaConsumerBuilderInterface.php @@ -8,7 +8,6 @@ interface KafkaConsumerBuilderInterface { - public const OFFSET_BEGINNING = RD_KAFKA_OFFSET_BEGINNING; public const OFFSET_END = RD_KAFKA_OFFSET_END; public const OFFSET_STORED = RD_KAFKA_OFFSET_STORED; diff --git a/src/Consumer/KafkaHighLevelConsumer.php b/src/Consumer/KafkaHighLevelConsumer.php index fe7980a..7a6d0f3 100644 --- a/src/Consumer/KafkaHighLevelConsumer.php +++ b/src/Consumer/KafkaHighLevelConsumer.php @@ -19,7 +19,6 @@ final class KafkaHighLevelConsumer extends AbstractKafkaConsumer implements KafkaHighLevelConsumerInterface { - /** * @var RdKafkaHighLevelConsumer */ diff --git a/src/Consumer/KafkaLowLevelConsumer.php b/src/Consumer/KafkaLowLevelConsumer.php index a4b00a7..c44b7c4 100644 --- a/src/Consumer/KafkaLowLevelConsumer.php +++ b/src/Consumer/KafkaLowLevelConsumer.php @@ -19,7 +19,6 @@ final class KafkaLowLevelConsumer extends AbstractKafkaConsumer implements KafkaLowLevelConsumerInterface { - /** * @var RdKafkaLowLevelConsumer */ diff --git a/src/Consumer/KafkaLowLevelConsumerInterface.php b/src/Consumer/KafkaLowLevelConsumerInterface.php index 46b2fb4..f35e7fe 100644 --- a/src/Consumer/KafkaLowLevelConsumerInterface.php +++ b/src/Consumer/KafkaLowLevelConsumerInterface.php @@ -6,5 +6,4 @@ interface KafkaLowLevelConsumerInterface extends KafkaConsumerInterface { - } diff --git a/src/Consumer/TopicSubscription.php b/src/Consumer/TopicSubscription.php index 829df1b..dffca6f 100644 --- a/src/Consumer/TopicSubscription.php +++ b/src/Consumer/TopicSubscription.php @@ -6,7 +6,6 @@ final class TopicSubscription implements TopicSubscriptionInterface { - /** * @var string */ diff --git a/src/Consumer/TopicSubscriptionInterface.php b/src/Consumer/TopicSubscriptionInterface.php index e176ae5..e23dfc7 100644 --- a/src/Consumer/TopicSubscriptionInterface.php +++ b/src/Consumer/TopicSubscriptionInterface.php @@ -6,7 +6,6 @@ interface TopicSubscriptionInterface { - /** * @return string */ diff --git a/src/Exception/KafkaConsumerConsumeException.php b/src/Exception/KafkaConsumerConsumeException.php index 68d4f44..efa0b3b 100644 --- a/src/Exception/KafkaConsumerConsumeException.php +++ b/src/Exception/KafkaConsumerConsumeException.php @@ -8,7 +8,6 @@ class KafkaConsumerConsumeException extends \Exception { - public const NOT_SUBSCRIBED_EXCEPTION_MESSAGE = 'This consumer is currently not subscribed'; /** diff --git a/src/Exception/KafkaConsumerEndOfPartitionException.php b/src/Exception/KafkaConsumerEndOfPartitionException.php index 764a83e..5320bd4 100644 --- a/src/Exception/KafkaConsumerEndOfPartitionException.php +++ b/src/Exception/KafkaConsumerEndOfPartitionException.php @@ -6,5 +6,4 @@ class KafkaConsumerEndOfPartitionException extends \Exception { - } diff --git a/src/Exception/KafkaConsumerTimeoutException.php b/src/Exception/KafkaConsumerTimeoutException.php index 2befd13..5260133 100644 --- a/src/Exception/KafkaConsumerTimeoutException.php +++ b/src/Exception/KafkaConsumerTimeoutException.php @@ -6,5 +6,4 @@ class KafkaConsumerTimeoutException extends \Exception { - } diff --git a/src/Message/AbstractKafkaMessage.php b/src/Message/AbstractKafkaMessage.php index 7393db6..9e56777 100644 --- a/src/Message/AbstractKafkaMessage.php +++ b/src/Message/AbstractKafkaMessage.php @@ -6,7 +6,6 @@ abstract class AbstractKafkaMessage implements KafkaMessageInterface { - /** * @var string|null */ diff --git a/src/Message/Decoder/JsonDecoder.php b/src/Message/Decoder/JsonDecoder.php index 7f2a742..8fcdae5 100644 --- a/src/Message/Decoder/JsonDecoder.php +++ b/src/Message/Decoder/JsonDecoder.php @@ -9,7 +9,6 @@ class JsonDecoder implements DecoderInterface { - /** * @param KafkaConsumerMessageInterface $consumerMessage * @return KafkaConsumerMessageInterface diff --git a/src/Message/Decoder/NullDecoder.php b/src/Message/Decoder/NullDecoder.php index b10ca93..57f758c 100644 --- a/src/Message/Decoder/NullDecoder.php +++ b/src/Message/Decoder/NullDecoder.php @@ -8,7 +8,6 @@ final class NullDecoder implements DecoderInterface { - /** * @param KafkaConsumerMessageInterface $consumerMessage * @return KafkaConsumerMessageInterface diff --git a/src/Message/Encoder/AvroEncoder.php b/src/Message/Encoder/AvroEncoder.php index bb86822..e8ab7b7 100644 --- a/src/Message/Encoder/AvroEncoder.php +++ b/src/Message/Encoder/AvroEncoder.php @@ -14,7 +14,6 @@ final class AvroEncoder implements AvroEncoderInterface { - /** * @var AvroSchemaRegistryInterface */ diff --git a/src/Message/Encoder/JsonEncoder.php b/src/Message/Encoder/JsonEncoder.php index 866c472..5c60785 100644 --- a/src/Message/Encoder/JsonEncoder.php +++ b/src/Message/Encoder/JsonEncoder.php @@ -8,7 +8,6 @@ class JsonEncoder implements EncoderInterface { - /** * @param KafkaProducerMessageInterface $producerMessage * @return KafkaProducerMessageInterface diff --git a/src/Message/Encoder/NullEncoder.php b/src/Message/Encoder/NullEncoder.php index 4299d89..8517854 100644 --- a/src/Message/Encoder/NullEncoder.php +++ b/src/Message/Encoder/NullEncoder.php @@ -8,7 +8,6 @@ final class NullEncoder implements EncoderInterface { - /** * @param KafkaProducerMessageInterface $producerMessage * @return KafkaProducerMessageInterface diff --git a/src/Message/KafkaAvroSchema.php b/src/Message/KafkaAvroSchema.php index 28fc320..ddf0b77 100644 --- a/src/Message/KafkaAvroSchema.php +++ b/src/Message/KafkaAvroSchema.php @@ -6,7 +6,6 @@ final class KafkaAvroSchema implements KafkaAvroSchemaInterface { - /** * @var string */ diff --git a/src/Message/KafkaAvroSchemaInterface.php b/src/Message/KafkaAvroSchemaInterface.php index fa24ad7..f98f17f 100644 --- a/src/Message/KafkaAvroSchemaInterface.php +++ b/src/Message/KafkaAvroSchemaInterface.php @@ -6,7 +6,6 @@ interface KafkaAvroSchemaInterface { - public const LATEST_VERSION = -1; /** diff --git a/src/Message/KafkaConsumerMessage.php b/src/Message/KafkaConsumerMessage.php index 704c17a..f6e7eaf 100644 --- a/src/Message/KafkaConsumerMessage.php +++ b/src/Message/KafkaConsumerMessage.php @@ -6,7 +6,6 @@ final class KafkaConsumerMessage extends AbstractKafkaMessage implements KafkaConsumerMessageInterface { - /** * @var int */ diff --git a/src/Message/KafkaConsumerMessageInterface.php b/src/Message/KafkaConsumerMessageInterface.php index 6a5752a..e488357 100644 --- a/src/Message/KafkaConsumerMessageInterface.php +++ b/src/Message/KafkaConsumerMessageInterface.php @@ -6,7 +6,6 @@ interface KafkaConsumerMessageInterface extends KafkaMessageInterface { - /** * @return integer */ diff --git a/src/Message/KafkaMessageInterface.php b/src/Message/KafkaMessageInterface.php index 9ed8247..7a27c8a 100644 --- a/src/Message/KafkaMessageInterface.php +++ b/src/Message/KafkaMessageInterface.php @@ -6,7 +6,6 @@ interface KafkaMessageInterface { - /** * Returns the message key or null if the message doesn't have a body * @return mixed diff --git a/src/Message/KafkaProducerMessage.php b/src/Message/KafkaProducerMessage.php index 4ce9b4b..94a8fbb 100644 --- a/src/Message/KafkaProducerMessage.php +++ b/src/Message/KafkaProducerMessage.php @@ -6,7 +6,6 @@ final class KafkaProducerMessage extends AbstractKafkaMessage implements KafkaProducerMessageInterface { - /** * @param string $topicName * @param integer $partition diff --git a/src/Message/KafkaProducerMessageInterface.php b/src/Message/KafkaProducerMessageInterface.php index cf97f0e..8040c7d 100644 --- a/src/Message/KafkaProducerMessageInterface.php +++ b/src/Message/KafkaProducerMessageInterface.php @@ -6,7 +6,6 @@ interface KafkaProducerMessageInterface extends KafkaMessageInterface { - /** * @param string $topicName * @param integer $partition diff --git a/src/Producer/KafkaProducer.php b/src/Producer/KafkaProducer.php index 93585eb..2d02634 100644 --- a/src/Producer/KafkaProducer.php +++ b/src/Producer/KafkaProducer.php @@ -18,7 +18,6 @@ final class KafkaProducer implements KafkaProducerInterface { - /** * @var RdKafkaProducer */ diff --git a/src/Producer/KafkaProducerInterface.php b/src/Producer/KafkaProducerInterface.php index 6dfde40..d97ae5e 100644 --- a/src/Producer/KafkaProducerInterface.php +++ b/src/Producer/KafkaProducerInterface.php @@ -10,7 +10,6 @@ interface KafkaProducerInterface { - /** * @param KafkaProducerMessageInterface $message * @param boolean $autoPoll