#java #jakarta-ee #annotations #integration #jca
#java #джакарта-ee #аннотации #интеграция #jca
Вопрос:
Я не могу найти пример, показывающий вариант использования множественного числа @ConnectionDefinitions в реализации ManagedConnectionFactory. Что меня смущает, так это то, что единственная аннотация @ConnectionDefinition не позволяет вам предоставлять @ConfigProperty для каждого определения. Вы можете использовать @ConfigProperty только для установки свойств по умолчанию для ВСЕХ экземпляров ManagedConnectionFactory, и каждое определение соединения должно использовать другой интерфейс ConnectionFactory. Итак, предполагая, что вы сделали что-то вроде этого:
@ConnectionDefinitions(value = {
@ConnectionDefinition(
connection = com.company.product.connector.MyConnection.class,
connectionFactory = com.company.product.connector.ConnectionFactory1.class,
connectionFactoryImpl = com.company.product.connector.ConnectionFactory1Impl.class,
connectionImpl = com.company.product.connector.MyConnectionImpl.class
)
@ConnectionDefinition(
connection = com.company.product.connector.MyConnection.class,
connectionFactory = com.company.product.connector.ConnectionFactory2.class,
connectionFactoryImpl = com.company.product.connector.ConnectionFactory2Impl.class,
connectionImpl = com.company.product.connector.MyConnectionImpl.class
)
})
public class MyManagedConnectionFactory implements
ManagedConnectionFactory, ResourceAdapterAssociation {
@Override
public Object createConnectionFactory(ConnectionManager connectionManager)
throws ResourceException {
//Return the connection factory.
}
}
Как createConnectionFactory() узнает, возвращать ли ConnectionFactory1 или ConnectionFactory2? Если только кто-то не переопределит аннотацию в любом случае через ra.xml Я не вижу способа использовать config-property в качестве условия.
Кажется трудным определить, частью какого определения соединения является ManagedConnectionFactory, так зачем это делать, когда вы можете просто иметь отдельный ManagedConnectionFactory для каждого ConnectionFactory?
Пример был бы очень полезен.