2010-11-16 3 views
26

Я написал JCA resource adapter before.Нужен ли ресурсодателю JCA 1.6 ManagedConnectionFactory?

Однако теперь я нахожусь в положении необходимости писать только один, чтобы получить доступ к BootstrapContext и связанным с ним WorkManager и эффективно ни по какой другой причине.

Если я правильно читал спецификацию - и вот мой вопрос - это выглядит, как если я хочу кого-то, чтобы иметь возможность использования мой ресурс адаптер в соответствующей спецификации моды, мне еще нужно реализовать ManagedConnectionFactory , поскольку, по-видимому, только приложения для подключения пользователей, созданные по версиям ManagedConnectionFactory, имеют право на инъекцию посредством аннотации @Resource.

Вперед, прочитайте его снова; Я буду ждать. :-)

В идеальном мире, я хотел бы написать мою ResourceAdapter реализацию, аннотацию с @Connector, указать все @ConfigProperty бит, упаковать его в .rar файле, и сделать с ней.

Однако, мне кажется, что спецификация действительно гарантирует, что вся связь между потребителем (не имеющим аналогов EJB в моем случае) и модулем адаптера ресурсов должна выполняться через фабрику пользовательских подключений.

Например, раздел 6.10.1 говорит:

Адаптер ресурсов должен обеспечить реализацию следующих интерфейсов:

  • javax.resource.spi.ManagedConnectionFactory
  • javax.resource. spi.ManagedConnection
  • javax.resource.spi.ManagedConnectionMetaData

Но раздел 18 - раздел аннотаций - кажется, не предусматривает принудительного применения этого каким-либо значимым образом.

Действительно ли это так? Я полагаю, что это должно быть, но мне было бы интересно услышать от людей, которые собрали адаптер ресурсов 1.6.

+0

было давно, в 2004 году, когда мне пришлось реализовать ResourceAdapter, ManagedConnectionFactory был необходим, я вряд ли верю, что с тех пор все изменилось. – bestsss

ответ

3

«В этом разделе описываются требования к контракту на управление подключением».

Является ли это законным, используя только аннотации JCA 1.6, чтобы просто определить реализацию ResourceAdapter с - в основном - ничего больше в модуле?

Да. это отлично.

спецификация указывает, в разделе 19.2, что исходящий адаптер ресурсов (который это было бы) должны {handwave handwave} сделать использование управления соединениями,

управления транзакциями и управления безопасностью договоров.Во всех трех случаях, я просто хочу, чтобы указать - желательно, опуская аннотаций и/или код - что я не suppo'r't ни один из них

Если вам не нужны исходящие коммуникационные возможности, вы не должны определить их (соединение-завод, управляемый-соединение-завод и т.д.,)

достаточно ли просто построить POJO, который реализует ResourceAdapter, аннотировать его с @Connector, и идти оттуда?

Да.

Могу ли я затем ввести такое POJO в свой EJB, используя аннотацию @Resource?

Я не думаю, что «ResourceAdapter» Java Bean может быть введен с использованием аннотации @Resource. Всякий раз, когда развертывается/активируется ресурсный адаптер/запускается сервер,

GlassFish загрузит ресурс-адаптер.

+3

Хорошо, но вопрос выше не спрашивает, можно ли построить бездоменную ResourceAdapter. Я вижу из вашего ответа (и других), что вы можете это сделать, но если вы хотите, чтобы ваши конечные пользователи могли его использовать, тогда мой вопрос: нужно ли поставлять фабрику соединений? –

+0

Что вы подразумеваете под этим? Вам нужно активировать его AS. Самый очевидный механизм для этого - вставить ConnectionFactory в EJB '@Startup @ Stateless'. Теперь вы получаете уверенность, что ваш загрузочный бут JCA вызывается при развертывании. Для связи возможно AdministeredObject - это еще один механизм для его контроля, если понятие «сообщение» не подходит вам. –