Понимание аннотации @ConnectionDefinitions в jca 1.6 - PullRequest
4 голосов
/ 07 октября 2011

Я не могу найти пример, в котором показан пример использования множественного @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 в качестве условия.

Кажется трудным определить, к какому определению соединения относится ManagedConnectionFactory, так зачем делать это, если вы можете просто иметь отдельную ManagedConnectionFactory для каждой ConnectionFactory?

Пример был бы очень полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...