66use Enqueue \AsyncEventDispatcher \DependencyInjection \AsyncEventDispatcherExtension ;
77use Enqueue \Client \CommandSubscriberInterface ;
88use Enqueue \Client \TopicSubscriberInterface ;
9- use Enqueue \Client \TraceableProducer ;
109use Enqueue \JobQueue \Job ;
1110use Enqueue \Symfony \DependencyInjection \ClientFactory ;
1211use Enqueue \Symfony \DependencyInjection \TransportFactory ;
1312use Symfony \Component \Config \FileLocator ;
1413use Symfony \Component \Config \Resource \FileResource ;
15- use Symfony \Component \DependencyInjection \Alias ;
1614use Symfony \Component \DependencyInjection \ContainerBuilder ;
1715use Symfony \Component \DependencyInjection \Extension \PrependExtensionInterface ;
1816use Symfony \Component \DependencyInjection \Loader \YamlFileLoader ;
19- use Symfony \Component \DependencyInjection \Reference ;
2017use Symfony \Component \HttpKernel \DependencyInjection \Extension ;
2118
2219final 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 ' ]) {
0 commit comments