Skip to content

Commit 6f891e2

Browse files
authoredDec 21, 2018
Merge pull request #698 from jverdeyen/bugfix-dbal-uuid
[dbal] Use string-based UUIDs instead of binary
2 parents a1de86c + 8db40f8 commit 6f891e2

File tree

4 files changed

+8
-22
lines changed

4 files changed

+8
-22
lines changed
 

‎pkg/dbal/DbalConsumerHelperTrait.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ protected function fetchMessage(array $queues, int $redeliveryDelay): ?DbalMessa
4949
->set('redeliver_after', ':redeliverAfter')
5050
->andWhere('id = :messageId')
5151
->andWhere('delivery_id IS NULL')
52-
->setParameter('deliveryId', $deliveryId->getBytes(), Type::GUID)
52+
->setParameter('deliveryId', $deliveryId, Type::GUID)
5353
->setParameter('redeliverAfter', $now + $redeliveryDelay, Type::BIGINT)
5454
;
5555

@@ -68,7 +68,7 @@ protected function fetchMessage(array $queues, int $redeliveryDelay): ?DbalMessa
6868
->select('*')
6969
->from($this->getContext()->getTableName())
7070
->andWhere('delivery_id = :deliveryId')
71-
->setParameter('deliveryId', $deliveryId->getBytes(), Type::GUID)
71+
->setParameter('deliveryId', $deliveryId, Type::GUID)
7272
->setMaxResults(1)
7373
->execute()
7474
->fetch();
@@ -152,7 +152,7 @@ private function deleteMessage(string $deliveryId): void
152152

153153
$this->getConnection()->delete(
154154
$this->getContext()->getTableName(),
155-
['delivery_id' => Uuid::fromString($deliveryId)->getBytes()],
155+
['delivery_id' => $deliveryId],
156156
['delivery_id' => Type::GUID]
157157
);
158158
}

‎pkg/dbal/DbalContext.php

+2-7
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
use Interop\Queue\Queue;
1818
use Interop\Queue\SubscriptionConsumer;
1919
use Interop\Queue\Topic;
20-
use Ramsey\Uuid\Codec\OrderedTimeCodec;
21-
use Ramsey\Uuid\Uuid;
22-
use Ramsey\Uuid\UuidFactory;
2320

2421
class DbalContext implements Context
2522
{
@@ -154,9 +151,7 @@ public function convertMessage(array $arrayMessage): DbalMessage
154151
);
155152

156153
if (isset($arrayMessage['id'])) {
157-
$uuidCodec = new OrderedTimeCodec((new UuidFactory())->getUuidBuilder());
158-
159-
$message->setMessageId($uuidCodec->decodeBytes($arrayMessage['id'])->toString());
154+
$message->setMessageId($arrayMessage['id']);
160155
}
161156
if (isset($arrayMessage['queue'])) {
162157
$message->setQueue($arrayMessage['queue']);
@@ -171,7 +166,7 @@ public function convertMessage(array $arrayMessage): DbalMessage
171166
$message->setPublishedAt((int) $arrayMessage['published_at']);
172167
}
173168
if (isset($arrayMessage['delivery_id'])) {
174-
$message->setDeliveryId(Uuid::fromBytes($arrayMessage['delivery_id'])->toString());
169+
$message->setDeliveryId($arrayMessage['delivery_id']);
175170
}
176171
if (isset($arrayMessage['redeliver_after'])) {
177172
$message->setRedeliverAfter((int) $arrayMessage['redeliver_after']);

‎pkg/dbal/DbalProducer.php

+1-10
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111
use Interop\Queue\Exception\InvalidMessageException;
1212
use Interop\Queue\Message;
1313
use Interop\Queue\Producer;
14-
use Ramsey\Uuid\Codec\OrderedTimeCodec;
1514
use Ramsey\Uuid\Uuid;
16-
use Ramsey\Uuid\UuidFactory;
1715

1816
class DbalProducer implements Producer
1917
{
@@ -37,18 +35,12 @@ class DbalProducer implements Producer
3735
*/
3836
private $context;
3937

40-
/**
41-
* @var OrderedTimeCodec
42-
*/
43-
private $uuidCodec;
44-
4538
/**
4639
* @param DbalContext $context
4740
*/
4841
public function __construct(DbalContext $context)
4942
{
5043
$this->context = $context;
51-
$this->uuidCodec = new OrderedTimeCodec((new UuidFactory())->getUuidBuilder());
5244
}
5345

5446
/**
@@ -71,15 +63,14 @@ public function send(Destination $destination, Message $message): void
7163
}
7264

7365
$body = $message->getBody();
74-
$uuid = Uuid::uuid4();
7566

7667
$publishedAt = null !== $message->getPublishedAt() ?
7768
$message->getPublishedAt() :
7869
(int) (microtime(true) * 10000)
7970
;
8071

8172
$dbalMessage = [
82-
'id' => $this->uuidCodec->encodeBinary($uuid),
73+
'id' => Uuid::uuid4(),
8374
'published_at' => $publishedAt,
8475
'body' => $body,
8576
'headers' => JSON::encode($message->getHeaders()),

‎pkg/dbal/Tests/DbalConsumerTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public function testShouldDeleteMessageOnAcknowledge()
7070
->method('delete')
7171
->with(
7272
'some-table-name',
73-
['delivery_id' => $deliveryId->getBytes()],
73+
['delivery_id' => $deliveryId->toString()],
7474
['delivery_id' => Type::GUID]
7575
)
7676
;
@@ -141,7 +141,7 @@ public function testShouldDeleteMessageFromQueueOnReject()
141141
->method('delete')
142142
->with(
143143
'some-table-name',
144-
['delivery_id' => $deliveryId->getBytes()],
144+
['delivery_id' => $deliveryId->toString()],
145145
['delivery_id' => Type::GUID]
146146
)
147147
;

0 commit comments

Comments
 (0)
Please sign in to comment.