Требуется ли ResourceAdapter адаптера JCA 1.6 ManagedConnectionFactory?
Я написал адаптер JCA до.
Однако теперь я нахожусь в том, что мне нужно написать одно единственное, чтобы получить доступ к BootstrapContext
и связанным с ним WorkManager
и эффективно ни по какой другой причине.
Если я правильно прочитал спецификацию - и мой вопрос - похоже, если я хочу, чтобы кто-то мог использовать мой адаптер ресурсов в соответствии со спецификацией, мне все равно нужно реализовать ManagedConnectionFactory
, потому что казалось бы, что только пользовательские заводы, созданные с помощью реализаций ManagedConnectionFactory
, имеют право на инъекцию через аннотацию @Resource
.
Вперед, прочитайте его снова; Я буду ждать.: -)
В идеальном мире я хотел бы написать свою реализацию ResourceAdapter
, аннотировать ее с помощью @Connector
, указать все биты @ConfigProperty
, упаковать ее в файл .rar
и сделать с ней.
Однако мне кажется, что спецификация действительно гарантирует, что всякая связь между потребителем (не имеющим аналогов в EJB в моем случае) и модулем адаптера ресурсов должна выполняться через пользовательское соединение factory.
Например, в разделе 6.10.1 говорится:
Адаптер ресурсов должен обеспечивать реализацию следующих интерфейсов:
- javax.resource.spi.ManagedConnectionFactory
- javax.resource.spi.ManagedConnection
- javax.resource.spi.ManagedConnectionMetaDatali >
Но раздел 18 - раздел аннотаций - кажется, не предусматривает принудительного применения этого каким-либо значимым образом.
Действительно ли это так? Я полагаю, что это должно быть, но мне было бы интересно услышать от людей, которые собрали адаптер ресурсов 1.6.
Ответы
Ответ 1
"В этом разделе описываются требования к контракту на управление подключением.
Является ли это законным, используя только аннотации JCA 1.6, просто определить реализацию ResourceAdapter с - в основном - ничего больше в модуле?
Да. это нормально.
Спецификация указывает в разделе 19.2, что адаптер исходящих ресурсов (который это будет) должен {handwave handwave} использовать управление соединением,
операции по управлению транзакциями и управлению безопасностью. Во всех трех случаях я просто хочу указать - предпочтительно, опускав аннотации и/или код, - что я не поддерживаю никого из них
Если вам не нужны возможности исходящей связи, вам не нужно их определять (connection- factory, managed-connection- factory и т.д.,)
Достаточно ли просто создавать POJO, который реализует ResourceAdapter, аннотировать его с помощью @Connector и идти оттуда?
Да.
Могу ли я затем ввести такое POJO в свой EJB с помощью аннотации @Resource?
Я не думаю, что "ResourceAdapter" Java Bean можно вставить с помощью аннотации @Resource. Когда запускается/активируется ресурсный адаптер/запускается сервер,
GlassFish загрузит ресурс-адаптер.