Skip to content

Commit 5abf4dc

Browse files
committed
[client][bundle] Move client configuration to ClientFactory.
1 parent b8ab683 commit 5abf4dc

File tree

15 files changed

+91
-109
lines changed

15 files changed

+91
-109
lines changed

pkg/enqueue-bundle/DependencyInjection/EnqueueExtension.php

Lines changed: 6 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,14 @@
66
use Enqueue\AsyncEventDispatcher\DependencyInjection\AsyncEventDispatcherExtension;
77
use Enqueue\Client\CommandSubscriberInterface;
88
use Enqueue\Client\TopicSubscriberInterface;
9-
use Enqueue\Client\TraceableProducer;
109
use Enqueue\JobQueue\Job;
1110
use Enqueue\Symfony\DependencyInjection\ClientFactory;
1211
use Enqueue\Symfony\DependencyInjection\TransportFactory;
1312
use Symfony\Component\Config\FileLocator;
1413
use Symfony\Component\Config\Resource\FileResource;
15-
use Symfony\Component\DependencyInjection\Alias;
1614
use Symfony\Component\DependencyInjection\ContainerBuilder;
1715
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
1816
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
19-
use Symfony\Component\DependencyInjection\Reference;
2017
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
2118

2219
final class EnqueueExtension extends Extension implements PrependExtensionInterface
@@ -38,62 +35,15 @@ public function load(array $configs, ContainerBuilder $container): void
3835
$this->setupAutowiringForProcessors($container);
3936

4037
$loader->load('client.yml');
41-
$loader->load('extensions/flush_spool_producer_extension.yml');
42-
$loader->load('extensions/exclusive_command_extension.yml');
38+
39+
$clientConfig = $config['client'];
40+
// todo
41+
$clientConfig['transport'] = $config['transport'];
42+
$clientConfig['consumption'] = $config['consumption'];
4343

4444
$clientFactory = new ClientFactory('default');
45-
$clientFactory->build($container, $config['client']);
45+
$clientFactory->build($container, $clientConfig);
4646
$clientFactory->createDriver($container, $config['transport']);
47-
48-
$configDef = $container->getDefinition('enqueue.client.default.config');
49-
$configDef->setArguments([
50-
$config['client']['prefix'],
51-
$config['client']['app_name'],
52-
$config['client']['router_topic'],
53-
$config['client']['router_queue'],
54-
$config['client']['default_processor_queue'],
55-
$config['client']['router_processor'],
56-
// @todo should be driver options.
57-
$config['transport'],
58-
]);
59-
60-
$container->setParameter('enqueue.client.default.router_processor', $config['client']['router_processor']);
61-
$container->setParameter('enqueue.client.router_queue_name', $config['client']['router_queue']);
62-
$container->setParameter('enqueue.client.default_queue_name', $config['client']['default_processor_queue']);
63-
64-
if ($config['client']['traceable_producer']) {
65-
$container->register('enqueue.client.default.traceable_producer', TraceableProducer::class)
66-
->setDecoratedService('enqueue.client.default.producer')
67-
->setPublic(true)
68-
->addArgument(new Reference('enqueue.client.default.traceable_producer.inner'))
69-
;
70-
71-
// todo do alias only for default transport
72-
$container->setAlias(TraceableProducer::class, new Alias('enqueue.client.default.traceable_producer'));
73-
}
74-
75-
if ($config['client']['redelivered_delay_time']) {
76-
$loader->load('extensions/delay_redelivered_message_extension.yml');
77-
78-
$container->getDefinition('enqueue.client.default.delay_redelivered_message_extension')
79-
->replaceArgument(1, $config['client']['redelivered_delay_time'])
80-
;
81-
}
82-
83-
$locatorId = 'enqueue.locator';
84-
if ($container->hasDefinition($locatorId)) {
85-
$locator = $container->getDefinition($locatorId);
86-
$locator->replaceArgument(0, array_replace($locator->getArgument(0), [
87-
'enqueue.client.default.queue_consumer' => new Reference('enqueue.client.default.queue_consumer'),
88-
'enqueue.client.default.driver' => new Reference('enqueue.client.default.driver'),
89-
'enqueue.client.default.delegate_processor' => new Reference('enqueue.client.default.delegate_processor'),
90-
'enqueue.client.default.producer' => new Reference('enqueue.client.default.producer'),
91-
]));
92-
}
93-
94-
$container->getDefinition('enqueue.client.default.queue_consumer')
95-
->replaceArgument(4, $config['consumption']['receive_timeout'])
96-
;
9747
}
9848

9949
if ($config['job']) {

pkg/enqueue-bundle/Resources/config/extensions/delay_redelivered_message_extension.yml

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
services:
22
enqueue.consumption.doctrine_clear_identity_map_extension:
33
class: 'Enqueue\Bundle\Consumption\Extension\DoctrineClearIdentityMapExtension'
4-
public: false
54
arguments:
65
- '@doctrine'
76
tags:
8-
- { name: 'enqueue.consumption_extension', client: 'default' }
7+
- { name: 'enqueue.consumption_extension', client: 'all' }
8+
- { name: 'enqueue.transport.consumption_extension', transport: 'all' }
9+
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
services:
22
enqueue.consumption.doctrine_ping_connection_extension:
33
class: 'Enqueue\Bundle\Consumption\Extension\DoctrinePingConnectionExtension'
4-
public: false
54
arguments:
65
- '@doctrine'
76
tags:
8-
- { name: 'enqueue.consumption.extension', client: 'default' }
7+
- { name: 'enqueue.consumption_extension', client: 'all' }
8+
- { name: 'enqueue.transport.consumption_extension', transport: 'all' }

pkg/enqueue-bundle/Resources/config/extensions/exclusive_command_extension.yml

Lines changed: 0 additions & 8 deletions
This file was deleted.

pkg/enqueue-bundle/Resources/config/extensions/flush_spool_producer_extension.yml

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
services:
22
enqueue.consumption.reply_extension:
33
class: 'Enqueue\Consumption\Extension\ReplyExtension'
4-
public: false
54
tags:
6-
- { name: 'enqueue.consumption.extension', client: 'default' }
5+
- { name: 'enqueue.consumption_extension', client: 'all' }
6+
- { name: 'enqueue.transport.consumption_extension', transport: 'all' }
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
services:
22
enqueue.consumption.signal_extension:
33
class: 'Enqueue\Consumption\Extension\SignalExtension'
4-
public: false
54
tags:
6-
- { name: 'enqueue.consumption.extension', client: 'default' }
5+
- { name: 'enqueue.consumption_extension', client: 'all' }
6+
- { name: 'enqueue.transport.consumption_extension', transport: 'all' }

pkg/enqueue-bundle/Tests/Functional/App/config/config.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ services:
5050
alias: 'enqueue.client.default.producer'
5151
public: true
5252

53+
test_enqueue.client.default.spool_producer:
54+
alias: 'enqueue.client.default.spool_producer'
55+
public: true
56+
5357
test_Enqueue\Client\ProducerInterface:
5458
alias: 'Enqueue\Client\ProducerInterface'
5559
public: true

pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ services:
1919
alias: 'enqueue.client.default.driver'
2020
public: true
2121

22+
test_enqueue.client.default.producer:
23+
alias: 'enqueue.client.default.producer'
24+
public: true
25+
2226
test_enqueue.transport.default.context:
2327
alias: 'enqueue.transport.default.context'
2428
public: true

0 commit comments

Comments
 (0)