我之前写过一个JCA 资源适配器。
然而,现在我发现自己不得不写一个仅仅为了访问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 资源适配器的人的来信。