Можно ли использовать HornetQ в качестве bean-компонентов без JNDI (даже если он стоит за какой-то абстракцией)...?
Моя первоначальная проблема - попытка обнаружить и внедрить HornetQ с минимальным количеством зависимостей.
Один пункт, который я хотел бы избежать - это необходимость в JNDI. Я полагаю, что можно найти все объекты напрямую, а не делать jndi-локатор.
Я не фанат jndi, потому что это похоже на глобальное дерьмо, где нужно отслеживать имена, следить за тем, чтобы они не конфликтовали с другими вещами и т. Д., Многие вещи кажутся неправильными, когда кто-то вспоминает, что хорошие абстракции делают минимум общественности.
Кстати, это не напыщенная речь, просто общее наблюдение...
1 ответ
Решение
Я нашел ответ на свой вопрос q, просматривая примеры, в частности EmbeddedExample.java, который говорит: "Да" - можно не использовать JNDI.
// Step 1. Create the Configuration, and set the properties accordingly
Configuration configuration = new ConfigurationImpl();
configuration.setPersistenceEnabled(false);
configuration.setSecurityEnabled(false);
configuration.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
// Step 2. Create and start the server
HornetQServer server = HornetQServers.newHornetQServer(configuration);
server.start();
// Step 3. As we are not using a JNDI environment we instantiate the objects directly
ClientSessionFactory sf = HornetQClient.createClientSessionFactory(new TransportConfiguration(InVMConnectorFactory.class.getName()));
// Step 4. Create a core queue
ClientSession coreSession = sf.createSession(false, false, false);