For our company, we are trying to create an extension that wraps some bussiness logic that is shared across applications.
For this extension, we have a class that uses a connection factory. This connectionFactory is produced ty quarkus-artemis-jms as a synthetic bean.
Example
@SuppressWarnings("unused")
@Record(ExecutionTime.RUNTIME_INIT)
@BuildStep
EventProducerBuildItem loadEventProducer(
// EventProducerRecorder recorder,
BeanContainerBuildItem beanContainerBuildItem,
ArtemisJmsConfiguredBuildItem artemisJmsConfiguredBuildItem,
CrvJmsRunTimeConfigs crvJmsRunTimeConfigs,
EventProducerRecorder eventProducerRecorder,
BuildProducer<SyntheticBeanBuildItem> syntheticBeanProducer
) {
ConnectionFactory jmsConnectionFactory = beanContainerBuildItem.getValue().beanInstance(ConnectionFactory.class);
LOG.info("JMSConnectionFactory: " + jmsConnectionFactory);
LOG.info("Loading EventProducer");
syntheticBeanProducer.produce(SyntheticBeanBuildItem.configure(EventProducer.class).scope(Singleton.class).runtimeValue(eventProducerRecorder.eventProducerSupplier("how_to_use_the_jms_connection_factory"));
return new EventProducerBuildItem();
}
I’ ve been trying for a few days to find a way to generate and register our class EventProducer, that has ConnectionFactory as a field, in a buildstep and also as a synthetic bean . How do I get a handle on this connection factory produced by another extension?
Does anyone have good examples?
2
The mising link in my knowledge was the existence of
.addInjectionPoint(ClassType.create(DotName.createSimple(XAConnectionFactory.class)))